在这种情况下,有几件事需要检查.很抱歉重复你已经尝试过的任何事情.
确保hold on
已设置,以便您实际绘制两个数据集.
尝试使用不同的渲染器.也就是说,尝试以下,一次一个.
set(gcf,'renderer','opengl')set(gcf,'renderer','painters')set(gcf,'renderer','zbuffer')
请注意,这些渲染选项之间还有其他交易.例如,我怀疑'画家'可能提供最好的渲染,但更新速度非常慢,而且几乎不可能(例如)旋转.
这是一个很长的镜头,但尝试简单地让你的标记更大.也就是说,替换
plot3(xdata, ydata, xdata, '.')
同
plot3(xdata, ydata, zdata, '.', 'markersize', 50)
如果这是2D绘图(我从编辑中看到它是),那么您可以使用第三维来强制正确的顺序.所有2D项目实际上以3D绘制,Z = 0.因此,如果您希望标记在曲面上方绘制,则可以替换:
plot(xdata, ydata, 'o')
同
plot3(xdata, ydata, 0.1, 'o')
表面和线条被认为是非常不同的物品b Matlab和相互作用的图形系统.订购这些不同类型的物品有时需要一些帮助.