倍频程/Matlab:颜色贴图不基于高度

倍频程/Matlab:颜色贴图不基于高度,matlab,3d,octave,figure,colormap,Matlab,3d,Octave,Figure,Colormap,当我在3D图形中绘制多个函数时(使用surf(my_function)),默认情况下,它会以颜色对应于该点高度的方式对函数曲面的每一小块进行着色 我想改变一下。我想在同一个图形上绘制几个函数,它们中的大多数在z方向上稍微分开,所以它们有不同的颜色(低的有蓝色阴影,高的有红色阴影)。我希望在大多数情况下保持这种状态,除了函数曲面是相同颜色的不同阴影,但是在绘制这些函数的循环的每次迭代中,颜色都会发生变化 在我的具体例子中,我正在绘制二维方阱(无限势阱)中粒子的波函数。然而,由于一些能级(即高度z)

当我在3D图形中绘制多个函数时(使用
surf(my_function)
),默认情况下,它会以颜色对应于该点高度的方式对函数曲面的每一小块进行着色

我想改变一下。我想在同一个图形上绘制几个函数,它们中的大多数在z方向上稍微分开,所以它们有不同的颜色(低的有蓝色阴影,高的有红色阴影)。我希望在大多数情况下保持这种状态,除了函数曲面是相同颜色的不同阴影,但是在绘制这些函数的循环的每次迭代中,颜色都会发生变化


在我的具体例子中,我正在绘制二维方阱(无限势阱)中粒子的波函数。然而,由于一些能级(即高度
z
)退化,我有不同的波函数占据相同的
z
。我想通过颜色的深浅来区分它们,同时保留函数的低谷是特定的深浅,而高谷是相同颜色的不同深浅的方法。

您可以独立设置冲浪的颜色:这显示了与山峰的高度和与帽檐的颜色(不要依赖于
\uu osmesa\u print\uuu
,它是一个内部倍频程函数):


您可以独立设置
冲浪的颜色:这显示了峰的高度和帽檐的颜色(不要依赖
\uuuuuuosmesa\uuu print\uuuuuuuu,这是一个内部倍频程函数):


surf(你的函数,你选择的颜色)
阅读更多:现在的可能重复我遇到了一个问题。我在
surf(peaks)
函数上测试了通用曲面颜色贴图,它看起来很正常。但是当我尝试添加colormap参数
surf(peaks,jet)时
颜色是随机的,不依赖于z。
surf(你的函数,你选择的颜色)
阅读更多:现在的可能重复我遇到了一个问题。我在
surf(peaks)
函数上测试了通用曲面颜色贴图,它看起来很正常。但是当我尝试添加colormap参数
surf(peaks,jet)时
颜色是随机的,不依赖于z。
figure ("visible", "off")
surf (peaks(64), sombrero (64));
[az, el] = view ();
n = 1;
clear img_stack;
for nel = el:2:90
  view (az, nel);
  drawnow;
  img_stack (:, :, :, n++) = __osmesa_print__ (gcf);
endfor
imwrite (img_stack, "out.gif", "DelayTime", 0.1, "Compression", "lzw")