虚线与粗线宽无法区分

时间:2018-09-06 14:49:34

标签: octave

我想增加图例中的线宽,同时仍然能够看到这条线是虚线。我对我的意思有一个简短的了解

for i=1:10
 x(i)=i;
 line1(i)=i;
 line2(i)=2*i;
endfor

subplot(2,1,1)
plot(x,line1,"-","LineWidth",1,x,line2,"--","LineWidth",1)
legend("solid","dashed")

subplot(2,1,2)
plot(x,line1,"-","LineWidth",10,x,line2,"--","LineWidth",10)
legend("solid","dashed")

这给出了下图 enter image description here

如您在第二张图片中所见,只有1行而不是虚线。

2 个答案:

答案 0 :(得分:4)

正如上面的注释所建议的,破折号模仿了图形本身中线条的属性,并且它太长了,无法以一种有用的方式进行渲染(至少在您的特定示例的上下文中)

图例本身就是一个合适的轴对象,使您可以获取和设置其属性。您可以增加其大小,然后将其包含的对象重新放置在适当的位置,或者,如果您不特别关心图例与图本身具有相同的确切形式,则可以将其线型或线宽替换为某种形式其他。例如。尝试在示例后添加以下行:

a = get(gcf, 'children');
b = get(a(1), 'children');
set(b(1), 'linestyle', ':');

结果:

答案 1 :(得分:1)

与Tasos相比,Andy的评论帮助我提出了另一种方法。我增加了图例框的大小。仍然需要确定位置和大小,但是它可以按预期工作。

for i=1:10
  x(i)=i;
  line1(i)=i;
  line2(i)=2*i;
endfor

subplot(2,1,1)
plot(x,line1,"-","LineWidth",1,x,line2,"--","LineWidth",1)
legend("solid","dashed")

subplot(2,1,2)
plot(x,line1,"-","LineWidth",10,x,line2,"--","LineWidth",10)
hleg1=legend("solid","dashed")

%added line
set(hleg1,'position',[0.6 0.3 0.3 0.2])

enter image description here