我尝试使用补丁功能在matlab中绘制一个简单的矩形。问题是,一旦我使用补丁功能,轮廓框就会消失(似乎忽略了图中的当前轴)。这是我使用的简单代码:
figure
set(gca,'visible','on')
axis([0,20e9,0.25,1.1])
patch([7e9 7e9 10e9 10e9],[.55 .35 .35 .55],'c','FaceAlpha',0.2,'linestyle','--','edgecolor','b','EdgeAlpha',.2,'linewidth',2);
box on
事先感谢,顺便说一句,我使用的是2013版的matlab。
答案 0 :(得分:2)
所以问题在于,由于你的补丁具有透明性,MATLAB必须将你的数字渲染器从默认渲染器更改为OpenGL
(它支持透明度)。因此,图形的某些功能(在您的情况下是轴上的边界框)可能会以不同的方式显示。
如果您将渲染器更改回'painters'
,您会看到该框会回到您期望的方式,但您会失去透明度。
set(gcf, 'Renderer', 'painters')
不幸的是,这确实没有很好的解决方案。您可以考虑将您的面部颜色更改为出现是透明的但不是真的,然后MATLAB可以使用默认的渲染器。您还可以尝试增加轴的LineWidth
set(gca, 'LineWidth', 2)