MATLAB:绘图函数中的错误

时间:2013-05-28 14:37:15

标签: matlab plot

我在家里写了一些代码来绘制一些3D数据。它工作正常。现在我在办公室运行相同的代码,我得到了一些奇怪的错误。似乎插入的每个数据点都有一个标签。

但这只发生在一半的情节上。左图显示了真实数据,右图显示了这些数据的平滑拟合。左边的一个得到错误而另一个没有。

我在同事的机器上运行代码,它也运行良好。所以我将干净的图形文件保存在他的机器上并试图在我的电脑上打开它们。仍然是同样的错误。所以它不是代码,但似乎是一些奇怪的显示错误。 有没有人看过这个? Numbers in Plot

figure(1);
s1=gca;
surf(t_matrix,f_matrix,alpha_matrix)
colorbar
figure(2);
s2=gca;
surf(t_matrix2,f_matrix2,alpha_matrix2)
colorbar

只是这个代码。如果我调试,数字会在第一次调用colorbar后出现。但不是在第二种情况下。我在家里的Matlab版本是2013a,但在办公室和我的同事都是2012b。

2 个答案:

答案 0 :(得分:5)

这似乎是一个错误。有a thread on MATLAB Answers

Jan Simon接受的答案是

  

这可能是OpenGL驱动程序引起的。你安装了最新版本吗?   你的显卡驱动程序?

     

解决方法可能是:

     

set(gcf,'renderer','zbuffer');

     

或者如果OpenGL看起来更好:

     

opengl软件

     

或者也许:

     

opengl硬件

     

在文档中查找“OpenGL”以找到一堆开关   考虑一堆驱动程序错误。

答案 1 :(得分:0)

实际上zbuffer渲染器工作正常但在某些情况下还不够。

我经常使用gca属性facealpha设置为0.5来处理透明曲面图,以便将等高线图叠加到它上面。只有Opengl渲染器才能正确显示面或边缘alpha设置(可能是其他一些绘图属性)。 zbuffer无法绘制透明曲面图。

当我最近切换到Win8时,主要问题首先引起了我的注意。血淋淋的$ Bill'HamsterWhy'Gate。

非常感谢Mathworks的补丁。