为什么在绘制面片后,Matlab会更改已绘制线的线宽和线型?
当我使用以下格式的plot3在Matlab中绘制多条直线时:为什么在绘制面片后,Matlab会更改已绘制线的线宽和线型?,matlab,graphics,plot,Matlab,Graphics,Plot,当我使用以下格式的plot3在Matlab中绘制多条直线时: plot3([x1 x2], [y1 y2], [z1 z2], 'LineWidth', 2, 'LineStyle','--'); 然后用如下方法绘制一个补丁: p = patch(x, y, z, 'k'); set(p, 'EdgeColor', 'g', 'FaceColor', 'none', 'LineWidth', 3, 'EdgeAlpha', 0.7) 如下图所示,已打印线的“线宽”和“
plot3([x1 x2], [y1 y2], [z1 z2], 'LineWidth', 2, 'LineStyle','--');
然后用如下方法绘制一个补丁:
p = patch(x, y, z, 'k');
set(p, 'EdgeColor', 'g', 'FaceColor', 'none', 'LineWidth', 3, 'EdgeAlpha', 0.7)
如下图所示,已打印线的“线宽”和“线型”略有更改。第一个图显示打印面片前的线,第二个图显示打印面片后的更改,即绿色线。你能告诉我怎么了吗
因为set命令重置了轴的全局属性。应将属性应用于每条线,而不是轴
ahs = findall(gca,'type','line')
set(ahs(1), 'LineWidth', 2, 'LineStyle','--');
set(ahs(2), 'EdgeColor', 'g', 'FaceColor', 'none', 'LineWidth', 3, 'EdgeAlpha', 0.7);
我不这么认为。我认为它只设置补丁“setp,…”的属性。您的建议不适用,因为脚本的第三行没有设置修补程序的属性。