当透视贴片时,Y轴消失

时间:2016-04-06 17:16:26

标签: matlab plot opacity

我尝试使用拟合线和预测器边界绘制测量数据进行比较,并使用Matlab 2011b和Win7 / 64位。

为此,我适合函数FitSt,并获取fevalpredint函数的拟合数据。

当我尝试使用patch函数绘制预测变量边界并将FaceAlpha属性设置为除1之外的任何值时,会出现问题 - y轴消失。当绘图平移时,x轴也会消失,但有时会重新出现。删除patch对象或将FaceAlpha设置为1时,轴会重新出现。刻度标记保持不变。

将此图导出(使用export_fig)到pdf时,轴可见但patch不透明(我认为pdf不支持不透明度)。导出到png时,结果是没有轴但具有不透明度 - 与matlab图完全相同。

假设我们在向量XmYmXfYf以及2列广告XpYp中有数据。第二个被分类表示测量,拟合和预测器边界。然后,不那么简单的工作示例是:

%% Plot measurement data      / Optional
line('xdata',Xm,'ydata',Ym,'color','b','linestyle','none','marker','.')     

%% Plot fit line              / Optional
line('xdata',Xf,'ydata',Yf','color','b')

%% Plot predictor bound patch / Mandatory
pp=patch(Xp(:),Yp(:),zeros(length(Xp(:)),1),'facecolor','b','linestyle','none')

%% Plot predictor bound edges / Mandatory
Xp=[Xp;nan(1,2)];Yp=[Yp;nan(1,2)];
line('xdata',Xp(:),'ydata',Yp(:),'color','b')

%% Screw axes
set(pp,'FaceAlpha',0.125)

%% Unscrew axes
set(pp,'FaceAlpha',1)

终极MWE:

fill([0;0;1;1],[0;1;1;0],[0;0;0;0],'facealpha',.5)
set(gca,'xlim',[-0.02 1.02],'ylim',[-0.02 1.02])

导致这种奇怪行为的原因是什么?如何避免这种行为?

整个代码创建的图片: enter image description here enter image description here

修改

讨论了同样的问题here,问题是由OpenGL渲染器引起的。

当我"拧开"轴,te渲染器自动从opengl切换到painters。当我运行set(gcf,'renderer','opengl')时,我拧紧了未拧紧的轴。如果我运行set(gcf,'renderer','painters')我拧下拧紧的轴但失去了不透明度。

0 个答案:

没有答案