在imagesc上使用透明度值

时间:2013-01-07 14:11:51

标签: matlab plot

当我绘制具有透明度的补丁时<在使用imagesc(Matlab R2012a)创建的图像上,我得到的东西看起来像很多“刻度标记”,或沿着轴的图像上的数字。以下代码重现了该问题:

imagesc(rand(10,20))
hold on
patch([5 5 15 15],[3 7 7 3],'r','facealpha',.5)

这是一个错误,还是有办法正确地做到这一点?

修改 如果我设置set(gca,'xtick',[],'ytick',[]),则数字会消失,因此确实与刻度相关。我当然希望在我的身上有嘀嗒声。

imagesc with numbers on it

1 个答案:

答案 0 :(得分:2)

这种图形工件通常与渲染器有关。特别是OpenGL渲染器似乎搞砸了Matlab版本,显卡和操作系统的某些组合。

标准解决方法是change the renderer from OpenGL to zBuffer in the figure properties,这是通过命令

实现的
set(gcf,'renderer','zbuffer')

不幸的是,OpenGL是唯一支持透明度的渲染器,因此该解决方案不适合您。

作为一种可能的替代解决方法,您可以通过命令

从硬件切换到软件OpenGL渲染器
opengl software

检查help on opengl以了解如何在* nix环境中进行设置。