在没有体积数据的3D中绘制多个等高线

5次浏览(过去30天)
我试图在同一个3D图中绘制多个等高线,没有体积数据。最终的图形看起来像一个 例如,用两个正交平面绘制等高线。相反,我有两个不同的等高线的数据,我想把它们放在同一个相互正交的3D图中。我已经看到的答案,允许您在3D中绘制多个等高线,如果您有体积数据( contourslice )或在3D中绘制多条2D线 plot3 ,但我还没有看到能做到我想要的功能的版本。

接受的答案

丹尼尔
丹尼尔 2021年9月14日
关键是使用 hgtransform .这里有一个片段,希望能提供足够的信息。
持有
Ax = gca;%得到当前轴
HG = hgtransform(ax);使它成为一个转换对象
[~,h] = contourf(xm_xz/D, zm_xz/D, curly, vlevels,“线型”“没有”“父”、HG);
使用transform对象绘制图形
HG.Matrix = makehgtform(“xrotate”π/ 2);%旋转它
Z_level = -8/D - 27/D;
h.ContourZLevel = Z_level;
[~,h] = contourf(xm/D,ym/D,curlz, vlevels,“线型”“没有”);%下一张图
countour_height = 31.5/D+0.5;
h.ContourZLevel = +countour_height;%移动最后一个图形
持有

更多答案(1)

darova
darova 2021年9月5日
你可以使用 冲浪
T = linspace(0,2*pi,50);
[x1,y1] = pol2cart(t,1+0.1*sin(5*t));第一次等高线
[x2,y2] = pol2cart(t,1);%二次等高线
[x3,y3] = pol2cart(t,0.5);第三等高线
V0 = x1*0;
X = [v0;x1;x2;x3;v0);% contantenate
Y = [v0;日元;y2;y3;v0);
Z = [v0;半;+ 1;+ 2;v0 + 2];
冲浪(X, Y, Z,“facecolor”“r”“edgecolor”“没有”
直线([x1 nan x2 nan x3],...
[y1 nan y2 nan y3],...
[v0 nan v0+1 nan v0+2],“线宽”, 2)
1评论
丹尼尔
丹尼尔 2021年9月14日
除非 facecolor 可以用另一个向量来画一个量吗 表面上看 我不是这个意思。一位同事发现了这一点。见下面的答案。

登录评论。

类别

了解更多轮廓图帮助中心而且文件交换

标签

s manbetx 845


释放

R2021a

社区寻宝

在MATLAB Central中找到宝藏,并发现社区如何帮助您!

开始狩猎!