当我在3D图形中绘制几个函数时(使用surf(my_function)),默认情况下,它会以颜色与该点的高度相对应的方式对函数表面的每一点进行着色。
我想稍微改变一下。我想在同一张图上画出几个函数,它们中的大多数在z方向上稍微分开,所以它们有不同的颜色(低的有蓝色的阴影,高的有红色的阴影)。我希望在很大程度上保持这一点,除非函数表面是相同颜色的不同阴影,但在绘制这些函数的循环的每次迭代中,颜色都会发生变化。
在我的特殊情况下,我正在绘制2D方阱(无限势阱)中粒子的波函数。然而,由于一些能级(即高度z)是简并的,所以我有占用相同z的不同波函数。我希望通过它们的颜色阴影来区分它们,同时保留函数的低谷是特定的阴影,而高谷是相同颜色的不同阴影的方法。
发布于 2016-11-01 18:06:14
你可以单独设置surf的颜色:这显示了峰顶的高度和宽边罩的颜色(不依赖于__osmesa_print__,它是一个内部的八度函数):
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")

https://stackoverflow.com/questions/40354452
复制相似问题