虚线无法区分粗线宽

问题描述 投票:1回答:2

我想在我的图例中增加线宽,同时还能看到这条线是虚线。我简短地说明了我的意思

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

正如您在第二张图片中看到的那样,只有一条线而不是虚线。

octave
2个回答
4
投票

正如上面的评论所暗示的那样,破折号模仿了图形本身中线条的属性,并且它太长了,无法以有用的方式渲染(至少在特定示例的上下文中)。

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

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

结果:


1
投票

Andy的评论让我想出了与Tasos相比的另一种方法。我增加了传奇盒子的大小。仍然有一些需要使用确定的位置和大小,但它按预期工作。

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

© www.soinside.com 2019 - 2024. All rights reserved.