独立したxyz座標の​データから三次元等高​線図を書くことができ​ますか?

16 次查看(过去 30 天)
晶太郎 松井
晶太郎 松井 2021-7-8
(x,y,z)がそれぞれ独立に決まているデータを用いて三次元等高線図を作成する方法を教えていただきたいです。
添付しているxyz座標のデータで3dグラフ(図1.fig)を描きデータを比較したのですが、複雑で分かりにくいため、等高線でデータを比較したいと考えました。
イメージ図.pngのような三次元等高線図を描きたいと考えています。このような図をmatlabで描くことは可能でしょうか。
解決方法の見当がつく方がいれば、ぜひ助けてほしいです。よろしくお願いいたします。
  2 个评论
Atsushi Ueno
Atsushi Ueno 2021-7-8
表面プロットを使えばイメージ図に近い表示が出来ます。
自分が具体的なプログラムを書くとすれば、夜になります。
晶太郎 松井
晶太郎 松井 2021-7-8
Atsushi Ueno さん、早急なご返答ありがとうございます。
教えていただいた表面プロットを使って試してみます。

请先登录,再进行评论。

采纳的回答

Atsushi Ueno
Atsushi Ueno 2021-7-8
「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]); % カラーバーの色指定範囲を変更
  1 个评论
晶太郎 松井
晶太郎 松井 2021-7-8
丁寧にご回答して頂き、ありがとうございました。
自分で試した際も、データが多いためグラフをきれいに書くことができていませんでした。
Atsushi Ueno さんのプログラムを参考にして色を変えるなど試行錯誤しようと思います。
本当にありがとうございました。

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 ライティング、透明度、およびシェーディング 的更多信息

产品


版本

R2021a

Community Treasure Hunt

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

Start Hunting!