Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么在绘制面片后,Matlab会更改已绘制线的线宽和线型?_Matlab_Graphics_Plot - Fatal编程技术网

为什么在绘制面片后,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在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)
如下图所示,已打印线的“线宽”和“线型”略有更改。第一个图显示打印面片前的线,第二个图显示打印面片后的更改,即绿色线。你能告诉我怎么了吗

因为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,…”的属性。您的建议不适用,因为脚本的第三行没有设置修补程序的属性。