独立したxyz座標のデータから三次元等高線図を書くことができますか?
23 views (last 30 days)
Show older comments
(x,y,z)がそれぞれ独立に決まているデータを用いて三次元等高線図を作成する方法を教えていただきたいです。
添付しているxyz座標のデータで3dグラフ(図1.fig)を描きデータを比較したのですが、複雑で分かりにくいため、等高線でデータを比較したいと考えました。
イメージ図.pngのような三次元等高線図を描きたいと考えています。このような図をmatlabで描くことは可能でしょうか。
解決方法の見当がつく方がいれば、ぜひ助けてほしいです。よろしくお願いいたします。
2 Comments
Accepted Answer
Atsushi Ueno
on 8 Jul 2021
「X軸811項目:Y軸10項目」とアスペクト比が大き過ぎて、表面プロットが良い感じに見えるようになりませんね。
下の例では、811項目の内20項目まで絞って表面プロットで描画してみました。また対数表示にしたり、色々見た目を変えてみました。同じ事はfigure画面でも可能です(マウスで各種パラメータを変更し、グリグリ回して確認できます)。
load('xyz座標.mat');
[X, Y] = meshgrid(x(1:20),1:10); % ちょっと横着。811項目の内20項目に絞る
Z = [z1 z2 z3 z4 z5 z6 z7 z8 z9 z10]';
Z = Z(:,1:20); % 811項目の内20項目に絞る
s = surf(X,Y,Z);
xlabel ('[Hz]'); ylabel ('[Sec]'); zlabel ('Power');
set(gca,'zscale','log'); % Z軸を対数スケールにする
pbaspect([100 10 100]); % Y軸だけ短いのでアスペクト比を変更する
s.EdgeColor = 'none'; % エッジを非表示にする
colormap('jet'); % カラーマップを表示する
colorbar; % カラーバーを表示する
caxis(gca, [0 1e-6]); % カラーバーの色指定範囲を変更
More Answers (0)
See Also
Categories
Find more on 表面プロットとメッシュ プロット in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!