How do I plot a contour map on the surface of a 3-d surface?

12 ビュー (過去 30 日間)
Joseph
Joseph 2016 年 1 月 31 日
コメント済み: GiWon Hong 2020 年 2 月 14 日
The idea is similar to using "surf(X,Y,Z,C)" but I want contour lines in addition to the coloring provided by C. The contour lines need to correspond to f(x,y,z), not x, y, or z. If there is a non-toolbox specific answer, that would be great. Thanks.

採用された回答

Mike Garrity
Mike Garrity 2016 年 2 月 1 日
編集済み: Mike Garrity 2016 年 2 月 1 日
A simple tricky I use sometimes is to use a colormap with a small number of colors.
[x,y] = meshgrid(linspace(-pi,pi,150));
z = cos(x).*cos(y);
c = sin(x).*sin(y);
surf(x,y,z,c,'FaceColor','interp','EdgeColor','none')
zlabel('cosine')
colormap(lines(7))
c = colorbar;
c.Label.String = 'sine';
view([-45 60])
This makes my CData variable look like what the contourf function would draw.
  3 件のコメント
John Mickett
John Mickett 2019 年 8 月 7 日
I would like to put contour lines OVER a surf plot (two different variables), so that solution doesn't work. Any suggestions? I do it in 2D all the time.
GiWon Hong
GiWon Hong 2020 年 2 月 14 日
Thanks, It is very helpful.
I used colormap(jet(31)) instead of colormap(lines(7)). It gives more contour likely view.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeContour Plots についてさらに検索

タグ

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by