在pcolor图表中出现对角线 (分面边缘不匹配!)

3

如果我在一个足够大的网格中使用pcolor,则面板边缘与颜色方块不匹配。以下是一个示例:

>> pcolor(rand(18))

生成这张图片:

在此输入图片描述

>> pcolor(rand(19))

生成这个:

输入图片说明

发生了什么事?


4
请发表您的完整代码。仅使用pcolor(rand(19))对我来说完全正常运行。 - Luis Mendo
@LuisMendo,就是这样。我尝试绘制一个二维直方图找到了问题,那段代码显然更加复杂,但在试图隔离问题时,我发现从Matlab提示符中单独运行pcolor(rand(19))就足以产生第二个图形。也许这是我的本地MATLAB首选项的问题? - EddyTheB
我不明白。你是在pcolor图上面画线,还是这只是figure;pcolor(rand(19))的结果?你使用的Matlab版本是什么?也许这是一个OpenGL问题?如果你改变'Renderer'属性会发生什么:set(gcf,'Renderer','painters')?而且,你需要使用pcolor而不是image绘图吗? - horchler
1
@horchler 很好的发现,是的,改变渲染器可以解决问题。使用“painters”或“zbuffer”绘制的图形看起来很好,因此我认为你是正确的,OpenGL是问题所在。从www.mathworks.co.uk/help/matlab/ref/figure_props.html中,我发现另一个解决方案是通过键入`opengl software`来使用软件OpenGL。如果您想将您的评论写成答案,我会将其标记为正确。谢谢。 - EddyTheB
1个回答

1
根据评论,似乎这可能是与硬件相关的OpenGL问题。如果出现这种情况,解决方法之一是更改图形的'Renderer'属性:
set(gcf,'Renderer','painters')

或者

set(gcf,'Renderer','zbuffer')

如果需要使用OpenGL,您可以尝试通过opengl命令切换到软件渲染器:
opengl software

您可能需要确保您的显卡驱动程序已经更新至最新版本。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接