为什么Matlab在绘制补丁后更改已绘制线条的LineWidth和LineStyle?

时间:2013-04-24 19:06:47

标签: matlab graphics plot

当我使用plot3使用以下格式在Matlab中绘制几行时:

    plot3([x1 x2], [y1 y2], [z1 z2], 'LineWidth', 2, 'LineStyle','--');

然后使用patch像这样绘制补丁:

    p = patch(x, y, z, 'k');
    set(p, 'EdgeColor', 'g', 'FaceColor', 'none', 'LineWidth', 3, 'EdgeAlpha', 0.7)

'线宽'和' LineStyle'如下图所示,已经绘制的线条略有变化(第一个图显示绘制贴片前的线条,第二个图形显示绘制贴片后的变化,绿色线条)。你能告诉我出了什么问题吗?

enter image description here enter image description here

1 个答案:

答案 0 :(得分:0)

因为set命令会重置轴的全局属性。您应该为每一行应用属性,而不是轴;

ahs = findall(gca,'type','line')
set(ahs(1), 'LineWidth', 2, 'LineStyle','--');
set(ahs(2), 'EdgeColor', 'g', 'FaceColor', 'none', 'LineWidth', 3, 'EdgeAlpha', 0.7);