0

嗨,这似乎是一个简单的问题,但我很难理解如何在 plot3d 中使用颜色。

这就是我所拥有的:

// x, y and z are matrix 4 by 100

myColors = ones(1,size(z,2));
plot3d(x,y,list(z,myColors),alpha=0,theta=270);

我想让 myColors 与 z 的高度相关。

4

1 回答 1

2

代码

如果我理解正确的 x,y 和 z 类似于:

x = [ 1:100 ];
y = [ 1:4 ];

z = rand( length(x), length(y) ); //Some function resulting in (100 x 4) matrix

然后您可以使用以下代码绘制它。

plot3d( x, y, z, alpha=0, theta=270);

e = gce();        // Get current entity handle.
e.color_flag = 1; // Color according to z

f = gcf();                        // Get current figure handle.
f.color_map = hotcolormap(512);     // Make it a heat color map

文档

根据plot3d 文档和surface_properties文档color_flag可用于:

color_flag:此字段用于指定用于设置构面颜色的算法。

请注意,color_mode、foreground 和 hiddencolor 的规则仍然适用于这种情况。

...

颜色标志 == 1

所有刻面都使用与 z 成比例的每个刻面的一个颜色索引进行绘制。最小 z 值使用索引 1 颜色绘制,而最大 z 值使用最高颜色索引绘制。面的边缘可以根据 color_mode 的值额外绘制(见上文)。

生成的图像

在此处输入图像描述

于 2013-04-28T12:11:38.557 回答