2次元プロットの plotyy 関数のように、3 次元プロットにて、Z 軸に対して複数のスケールを表示する方法はありますか?
15 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
MathWorks Support Team
il 30 Ago 2016
Risposto: MathWorks Support Team
il 30 Ago 2016
2次元プロットの plotyy 関数のように、3 次元プロットにて、Z 軸に対して複数のスケールを表示する方法を教えてください。
Risposta accettata
MathWorks Support Team
il 30 Ago 2016
残念ながら、3次元グラフィックスにおいて、Z 軸を複数設定するような機能は、MATLAB 9.0(R2016a) では提供されていません。
代替案として、次の 2 つの方法が考えられます。
1. 全てのデータを1つの Z 軸上に表示できるように、データをスケーリングしてから表示します。
% サンプルデータの生成
[x,y,z] = sphere(16);
bigz = z*100;
% グラフ表示
scatter3(x(:),y(:),z(:),'bo')
hold on
scatter3(x(:),y(:),bigz(:)/100,'r*') % スケーリングを併せて表示
2. 非表示の Axes オブジェクトを配置し、それぞれに対してデータを描画します。
% サンプルデータの生成
[x,y,z] = sphere(16);
bigz = z*100;
% グラフ表示
scatter3(x(:),y(:),z(:),'bo')
posAx1 = get(gca,'Position'); % Axes の位置を取得
hAx2 = axes('Position',posAx1); % 別の Axes を同じ位置に作成
scatter3(hAx2,x(:),y(:),bigz(:),'r*') % スケールの異なるデータを表示
set(hAx2,'Visible','off'); % 一方の Axes を非表示に設定
どちらの方法でも、2つのデータセットを同じスケールで表示できるようにしますが、残念ながら、それぞれの軸ラベルを表示することはできません。Z 軸ラベルをそれぞれに表示したい場合には、ラベル表示用の Axes を別に作成する必要があります。
0 Commenti
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Two y-axis in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!