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

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

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

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

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Produkte


Version

R2021a

Community Treasure Hunt

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

Start Hunting!