【问题标题】:using transparency value over imagesc在 imagesc 上使用透明度值
【发布时间】:2012-12-21 06:47:33
【问题描述】:

当我在使用 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',[]),数字就会消失,所以它确实与滴答有关。我当然更喜欢在我的身材上有刻度。

【问题讨论】:

  • 我刚刚在 2012b 上尝试过,但没有发生。重新开始matlab后也会发生这种情况吗?我猜你有一些导致问题的旧轴。
  • 重启后还是会出现,对于新图。
  • 如果把渲染器改成zbuffer,问题还会出现吗?即set(gcf,'renderer','zbuffer')
  • 您能否验证您的 XtickMode 和 YtickMode 是否设置为 auto 以及您的 xlim 和 ylim 是否有意义?
  • 我可以验证2012b不会发生这种情况,为什么不升级你的matlab版本?

标签: matlab plot


【解决方案1】:

这种图形工件通常与渲染器有关。尤其是 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 环境时进行设置。

【讨论】:

    猜你喜欢
    • 2012-12-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-14
    • 1970-01-01
    • 2016-12-02
    • 2018-12-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多