gpt4 book ai didi

Matlab 填充 contour3 图,如 contourf 图

转载 作者:行者123 更新时间:2023-12-04 02:19:27 28 4
gpt4 key购买 nike

我想填充 3D 等高线图 (contour3(X,Y,Z)),就像 2D 等高线填充图 (contourf(X,Y,Z))。但我无法弄清楚如何实现这一目标。 contour3 和 surf 的组合不是很令人满意,因为有平铺。

[X,Y,Z] = peaks(32);

figure
contourf(X,Y,Z,15);

figure
contour3(X,Y,Z,15,'k');
hold on;
surf(X,Y,Z, 'Edgecolor', 'none');

等高线(X,Y,Z,15); enter image description here

contour3(X,Y,Z,15,'k');坚持,稍等;冲浪(X,Y,Z,'Edgecolor','无'); enter image description here

最佳答案

基本曲面图上的颜色是Z 数据的函数。它们将被分面或插值,但 contour3 函数不会修改 surf 对象的颜色。 contour3 函数仅绘制等值线。

如果您希望您的表面像平面颜色图一样以“ block 状”方式着色,您还必须将颜色图设为“ block 状”:
在您的示例中,您使用了 15 等值线,因此您必须使用 15+1 颜色创建一个颜色图,以便颜色图的每个色 block 都匹配一条等值线。

nContour = 15 ;
figure ; [X,Y,Z] = peaks(32);
surf(X,Y,Z, 'Edgecolor', 'none');
shading interp
colormap( parula(nContour+1) ) %// assign a colormap with only 15+1 colors

将为您提供下方屏幕截图左侧的图像。如果需要,现在在顶部添加等值线:

hold on;
[C,h] = contour3(X,Y,Z,nContour,'k');

然后你就得到了右边的图。您可以不按特定顺序执行这两项操作,只需确保表面的颜色图足以满足您想要的等值线数量。

contour3ex

关于Matlab 填充 contour3 图,如 contourf 图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31918436/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com