使用补丁绘制简单矩形时如何显示轴轮廓?

时间:2016-12-06 20:09:36

标签: matlab octave matlab-figure

我尝试使用补丁功能在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。

1 个答案:

答案 0 :(得分:2)

所以问题在于,由于你的补丁具有透明性,MATLAB必须将你的数字渲染器从默认渲染器更改为OpenGL(它支持透明度)。因此,图形的某些功能(在您的情况下是轴上的边界框)可能会以不同的方式显示。

如果您将渲染器更改回'painters',您会看到该框会回到您期望的方式,但您会失去透明度。

set(gcf, 'Renderer', 'painters')

不幸的是,这确实没有很好的解决方案。您可以考虑将您的面部颜色更改为出现是透明的但不是真的,然后MATLAB可以使用默认的渲染器。您还可以尝试增加轴的LineWidth

set(gca, 'LineWidth', 2)