Plot contour in xz and yz plane
13 次查看(过去 30 天)
显示 更早的评论
I am trying to plot contours in xy, yz and xz plane simultaneously. The contour is for a surface (Z = f(X,Y)). I made the contour on xy plane but not on any other plane. A similar question was answered but it does not plot the contour in xz or yz plane.
3 个评论
采纳的回答
Walter Roberson
2020-5-13
Create a hgtransform object inside the axes, say HG. Now call contourf() passing in the hgtransform object, HG, in the first position -- the position for axes. Pass the first independent variables in the first position, the second independent variable in the second position, and the resultant variable in the third position.
Now set the Matrix property of the hgtransform to a rotation matrix that rotates from XYZ coordinates into the axes you want. You may wish to use makehgtform to construct the Matrix property.
If you wish to have additional contours on other planes, repeat the process described.
3 个评论
Walter Roberson
2020-5-13
[Vind1, Vind2, Vresult] = peaks(30);
ax = gca;
HG = hgtransform(ax);
[~, h] = contourf(Vind1, Vind2, Vresult, 'Parent', HG);
HG.Matrix = makehgtform('xrotate', pi/2);
metrize
2021-2-25
编辑:metrize
2021-2-25
@Walter Roberson Hi, I'm having trouble with something similar to this, I'm trying to plot multiple contour plots from inside a for loop and the only way I can move it is with h.ContourZLevel = x; where x is the current value in the for loop, this means i get contour plots stacking in the z axis, but then I cannot view it in the way I want, I need it to be in x,y with the depth as Z, an image is shown: https://i.imgur.com/oCJR73l.png
By doing it this way I can't view it with x,y,depth, but I don't know any other way to plot the contour plots in the for loop without the h.ContourZLevel = x
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
