ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

yyaxis

2 本の y 軸があるチャートの作成

説明

yyaxis left は、現在の座標軸のうち、左の y 軸に関連付けられている側をアクティブにします。後続のグラフィックス コマンドは左側をターゲットにします。現在の座標軸に y 軸が 2 本含まれていない場合、このコマンドは 2 番目の y 軸を追加します。軸がない場合、このコマンドはまずそれらの軸を作成します。

yyaxis right は、現在の座標軸のうち、右の y 軸に関連付けられている側をアクティブにします。後続のグラフィックス コマンドは、右側をターゲットにします。

yyaxis(ax,___) は、現在の座標軸ではなく、座標軸 ax のアクティブな側を指定します。座標軸に y 軸が 2 本含まれていない場合、このコマンドは 2 番目の y 軸を追加します。座標軸を最初の入力引数として指定します。'left' および 'right' のように、一重引用符で囲みます。

すべて折りたたむ

左右両側に y 軸を 1 本ずつもつ座標軸を作成します。左の y 軸に対してデータセットをプロットします。次に、yyaxis right を使用して右側をアクティブにして、後続のグラフィックス関数のターゲットにします。右の y 軸に対して 2 番目のデータセットをプロットし、右の y 軸の範囲を設定します。

x = linspace(0,10);
y = sin(3*x);
yyaxis left
plot(x,y)

z = sin(3*x).*exp(0.5*x);
yyaxis right
plot(x,z)
ylim([-150 150])

2 本の y 軸をもつチャートを作成し、それぞれの側にタイトルと軸ラベルを追加します。

サンプル ファイル accidents.mat から行列 hwydata を読み込みます。左の y 軸に対して hwydata の 5 番目の列をプロットし、散布図を作成します。タイトルと座標軸ラベルを追加します。

load('accidents.mat','hwydata')
ind = 1:51;
drivers = hwydata(:,5);
yyaxis left
scatter(ind,drivers)
title('Highway Data')
xlabel('States')
ylabel('Licensed Drivers (thousands)')

右の y 軸に対して hwydata の 7 番目の列をプロットし、2 番目の散布図を作成します。次に、右の y 軸にラベルを付けます。

pop = hwydata(:,7);
yyaxis right
scatter(ind,pop)
ylabel('Vehicle Miles Traveled (millions)')

hold on コマンドを使用して、左の y 軸に対して 2 本のラインをプロットします。

x = linspace(0,10);
yl1 = sin(x);
yl2 = sin(x/2);
yyaxis left
plot(x,yl1)
hold on
plot(x,yl2)

右の y 軸に対して 2 本のラインをプロットします。hold コマンドは左右両方の y 軸に作用するので、このコマンドを再実行する必要はありません。プロット後、hold をオフに戻します。

yr1 = x;
yr2 = x.^2;
yyaxis right
plot(x,yr1)
plot(x,yr2)
hold off

左側をアクティブにしてから cla コマンドを使用して、左側をクリアします。

yyaxis left
cla

2 つのサブプロットを含む Figure を作成し、Axes オブジェクトを変数 ax1ax2 に割り当てます。yyaxis の最初の入力として ax1 を指定して、上のサブプロットに 2 番目の y 軸を追加します。座標軸を指定しない場合、yyaxis は 2 番目の y 軸を現在の座標軸に追加します。

x = linspace(1,10);
ax1 = subplot(2,1,1);
yyaxis(ax1,'left')
plot(ax1,x,sin(x))
yyaxis(ax1,'right')
plot(ax1,x,exp(x))

ax2 = subplot(2,1,2);
plot(ax2,1:10)

入力引数

すべて折りたたむ

ターゲット座標軸。Axes オブジェクトとして指定します。Axes オブジェクトを指定しない場合、yyaxis は現在の座標軸を使用します。

制限

  • 2 本の y 軸を操作するときに以下は実行できません。

    • 座標軸を回転する (2 次元表示のみ)。

    • 注釈を固定する。

    • copyobj を使用して axes オブジェクトをコピーする。

ヒント

  • 座標軸のアクティブな側を調べるには、Axes オブジェクトの YAxisLocation プロパティをクエリします。左側がアクティブな場合はプロパティが 'left' に、右側がアクティブな場合はプロパティが 'right' に設定されています。y 軸を 2 本もつ Axes オブジェクトの YAxisLocation プロパティは読み取り専用です。

  • アクティブな側をクリアするには、cla を使用します。座標軸の両側をクリアして右の y 軸を削除するには、cla reset を使用します。別の方法として、両側のクリアと右の y 軸の削除を、次のプロット コマンドまで待つこともできます。そのためには、Axes オブジェクトの NextPlot プロパティを 'replaceall' に設定します。

アルゴリズム

すべて折りたたむ

グリッド ライン

グリッド ラインは、左の y 軸に沿う目盛りの位置に対応します。

色とライン スタイル

座標軸の特定の側に対応するプロットには、その側の y 軸と同じ色が使用されます。一方の側に複数のラインが含まれる場合、それらのラインにはライン スタイルが順番に繰り返して使用されます。左の y 軸には Axes オブジェクトの色の順番で最初の色が使用され、右の y 軸には 2 番目の色が使用されます。

チャートを含む Axes オブジェクトに 2 番目の y 軸を追加した場合、既存のチャートと左の y 軸の色は変更されません。右の y 軸には、色の順番で次の色が使用されます。

座標軸のプロパティ

y 軸に関連する座標軸プロパティは 2 つの値をもちます。ただし、MATLAB® はアクティブな側の値にのみアクセスを許可します。たとえば、左側がアクティブな場合、axes オブジェクトの YLim プロパティには、左の y 軸の範囲が含まれます。同様に、右側がアクティブな場合、YLim プロパティには、右の y 軸の範囲が含まれます。

例外として、Axes オブジェクトの YAxis プロパティには、2 つのルーラー オブジェクト (それぞれの y 軸に 1 つずつ) で構成される配列が含まれます。ルーラーを使用すると、アクティブな側に関係なく、それぞれの y 軸にアクセスできます。例については、2 つの y 軸があるチャートのプロパティの変更を参照してください。

R2016a で導入