2次元プロットの plotyy 関数のように、3 次元プロットにて、Z 軸に対して複数のスケ​ールを表示する方法は​ありますか?

6 ビュー (過去 30 日間)
MathWorks Support Team
MathWorks Support Team 2016 年 8 月 30 日
回答済み: MathWorks Support Team 2016 年 8 月 30 日
2次元プロットの plotyy 関数のように、3 次元プロットにて、Z 軸に対して複数のスケールを表示する方法を教えてください。

採用された回答

MathWorks Support Team
MathWorks Support Team 2016 年 8 月 30 日
残念ながら、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 件)

タグ

タグが未入力です。

製品


リリース

R2013a

Community Treasure Hunt

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

Start Hunting!