在Matlab中的surf()只显示两种颜色而不是多种颜色

时间:2012-07-08 00:09:07

标签: matlab colors plot surf variations

我使用以下代码行来绘制:

nthTheta=1;
gammaSurf=reshape(gamma(:,nthTheta,:),size(gamma,1),size(gamma,3));
figure
[spatial_lag,temporal_lag]=meshgrid(distance,4:4:12);
surf(gammaSurf,spatial_lag',temporal_lag')
colorbar
xlabel('Spatial Lag','Fontweight','Bold')
ylabel('Temporal Lag','Fontweight','Bold')
zlabel('\gamma (h,t)','Fontweight','Bold')
title('Spatiotemporal Empirical Variogram','Fontweight','Bold')

gammaSurf矩阵具有以下值,表明其值正在发生变化:

enter image description here

我只用两种颜色得到以下图,而不是颜色的多种变化:

enter image description here

我做错了什么因为我没有得到一个我期望的多色变化的情节?谢谢!

1 个答案:

答案 0 :(得分:1)

设置要插补的shading

shading(gca,'interp');

应该这样做。

实际上,看起来你的surf参数的顺序错误了。如果您希望z轴应用于gammasurf值,则需要将其作为第三个参数。

surf(spatial_lag',temporal_lag',gammasurf);

最后一个建议:如果你的确意味着gammasurf是x值,但你想要那些是定义颜色的那个,那么使用它作为第四个参数(C):< / p>

surf(gammasurf,spatial_lag',temporal_lag',gammasurf);

现在表面将像图像一样定向,但颜色随x值而不是z值变化。