当我绘制具有透明度的补丁时<在使用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',[])
,则数字会消失,因此确实与刻度相关。我当然希望在我的身上有嘀嗒声。
答案 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环境中进行设置。