2次元プロットの plotyy 関数のように、3 次元プロットにて、Z 軸に対して複数のスケールを表示する方法はありますか?
6 ビュー (過去 30 日間)
古いコメントを表示
MathWorks Support Team
2016 年 8 月 30 日
回答済み: MathWorks Support Team
2016 年 8 月 30 日
2次元プロットの plotyy 関数のように、3 次元プロットにて、Z 軸に対して複数のスケールを表示する方法を教えてください。
採用された回答
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 件のコメント
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Two y-axis についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!