【问题标题】:surf() in Matlab showing only two colors instead of multiple colorsMatlab中的surf()只显示两种颜色而不是多种颜色
【发布时间】:2012-07-08 00:09:06
【问题描述】:

我正在使用以下代码行进行绘图:

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 矩阵具有以下值,表明其值正在发生变化:

我得到以下图,只有两种颜色,而不是多种颜色:

我做错了什么,因为我没有得到我期望的具有多种颜色变化的情节吗?谢谢!

【问题讨论】:

    标签: matlab colors plot surf variations


    【解决方案1】:

    设置shading被插值:

    shading(gca,'interp');
    

    应该可以解决问题。

    实际上,您对surf 的参数似乎顺序错误。如果您希望 z 轴应用于 gammasurf 值,则需要作为第三个参数。

    surf(spatial_lag',temporal_lag',gammasurf);
    

    最后一个建议:如果您确实希望 gammasurf 成为 x 值,但您希望这些是定义颜色的值,请将其用作第四个参数 (C):

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

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

    【讨论】:

    • 感谢 tmpearce!你是对的,我的参数顺序错误,即 gammaSurf 应该是第三个参数。
    猜你喜欢
    • 2014-12-03
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-05
    • 1970-01-01
    • 2016-12-28
    • 1970-01-01
    相关资源
    最近更新 更多