Graphics | ![]() ![]() |
複数のX-軸、Y-軸の使用
XAxisLocation
とYAxisLocation
プロパティは、x軸とy軸をグラフのどちら側に配置するかを設定します。2つのAxesオブジェクトを重ね合わせ、XAxisLocation
とYAxisLocation
を使って各軸をグラフの異なる側に配置することによって、2つの異なるx軸とy軸をもつグラフを作成することができます。この方法は、同じグラフ内に異なるスケーリングをもつ異なるデータ集合をプロットするのに有効です。
例題- 2つの軸をもつグラフ
この例では、1つのデータに対するx軸とy軸として下部と左側を使用し、もう1つのデータに対するx軸とy軸として上部と右側を使用することによって、別々の2組のデータ集合を表示するグラフを作成します。
低水準のline
とaxes
ルーチンを使用することによって、オブジェクトを容易に重ねることができます。最初のデータをプロットし、Lineおよび対応するx軸とy軸を同じカラーにして、それらをより容易に関連付けるようにします。
hl1 = line(x1,y1,'Color','r'); ax1 = gca; set(ax1,'XColor','r','YColor','r')
つぎに、同じ位置に別のAxesを作成し、x軸を上部にy軸を右側に配置します。AxesのColor
をnone
に設定し、最初のAxesを見えるようにし、データに一致するようにx軸とy軸にカラーコードを設定します。
ax2 = axes('Position',get(ax1,'Position'),... 'XAxisLocation','top',... 'YAxisLocation','right',... 'Color','none',... 'XColor','k','YColor','k');
hl2 = line(x2,y2,'Color','k','Parent',ax2);
グリッドの一致
2つのAxesは完全に独立しているので、MATLABはそれぞれにプロットされるデータに従って、目盛りの位置を決定します。グリッドラインが一致することはあまりありません。2つのグリッドが別のカラーで描かれたとしても、グラフの外観は若干混乱します。しかし、目盛りの位置をマニュアルで設定すると、グリッドを一致させることができます。
重要なことは、対応する軸ラインに沿って同じ数の目盛りを設定することです(2つのAxesを同じサイズにするためにも必要です)。同じデータを使ったつぎのグラフは、オリジナルの範囲内で等間隔な6つの目盛りを軸ごとに使用します。目盛りの位置を計算するために、各軸の範囲を求め、増分を計算します。
xlimits = get(ax1,'XLim'); ylimits = get(ax1,'YLim'); xinc = (xlimits(2)-xlimits(1))/5; yinc = (ylimits(2)-ylimits(1))/5;
set(ax1,'XTick',[xlimits(1):xinc:xlimits(2)],... 'YTick',[ylimits(1):yinc:ylimits(2)])
結果として得られるグラフは、左側のy軸は多少変わった目盛りが付けられていますが、視覚的にはより単純です。
![]() | 軸方向の変更 | 自動モードプロパティ | ![]() |