我想增加图例中的线宽,同时仍然能够看到这条线是虚线。我对我的意思有一个简短的了解
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")
如您在第二张图片中所见,只有1行而不是虚线。
答案 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])