このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
座標軸のレイアウトの制御
位置に関係するプロパティと関数
座標軸のサイズと位置を取得および設定するためのプロパティと関数がいくつかあります。次の表に概要を示します。
関数またはプロパティ | 説明 |
---|---|
| このプロパティを使用して、タイトル、ラベル、余白を含む、座標軸の外部境界をクエリまたは変更します。外部境界を変更するには、このプロパティを |
| このプロパティを使用してプロット領域をクエリまたは変更します。通常、プロット領域はプロット ボックスで囲まれています。この領域には、タイトル、ラベル、およびタイトとラベル周囲の余白は含まれません。プロット領域のサイズを変更するには、このプロパティを |
R2022b 以降 | この関数を使用してプロット領域をクエリします。通常、プロット領域はプロット ボックスで囲まれています。多くの場合、この関数は、縦横比が制約されている座標軸 (正方形の座標軸、極座標軸、イメージを含む座標軸など) について、 |
| このプロパティを使用して、タイトル、目盛りラベル、軸ラベルのプロット ボックス周囲の余白をクエリします。軸ラベルやタイトルを追加すると、MATLAB® によって、テキストに対応するようにこのプロパティが更新されます。 |
R2020a 以降 | このプロパティを使用して、タイトルまたはラベルを追加するときに、(座標軸内の) プロット領域と、座標軸の外部境界とのどちらが保持されるかをクエリまたは制御します。座標軸についてそれらのどちらが保持されるかを変更するには、このプロパティを |
Units プロパティ | このプロパティを使用して、座標軸の位置の値の単位をクエリおよび変更します。自動的な座標軸のサイズ変更を有効にするには、この値を |
関数 | この関数を使用すると、計算を実行したり、特定のプロパティを設定したりしなくても、座標軸の範囲や縦横比を調整できます。以下に例を示します。
|
位置と余白の境界
次の図は、OuterPosition
値 (赤)、Position
値 (青)、および TightInset
値 (マゼンタ) で拡張された Position
によって定義される座標軸の各領域から成る 2 次元表示です。
次の図は、OuterPosition
値 (赤)、Position
値 (青)、および TightInset
値 (マゼンタ) で拡張された Position
によって定義される座標軸の各領域から成る 3 次元表示です。
正方形または制約付き縦横比の位置
R2022b 以降
イメージをプロットしている場合など、座標軸に制約付き縦横比がある場合、Position
プロパティと関数 tightPosition
は異なる結果を返します。作成するプレゼンテーションのタイプに応じて、それらのいずれかを使用します。
たとえば、イメージを表示するとします。関数 axis
を使用して、イメージの縦横比を保持します。
figure C = imread("ngc6543a.jpg"); ax = axes; image(C) axis image
関数 tightPosition
を呼び出して、位置ベクトルを取得します。このベクトルを使用して、座標軸に現在表示されているイメージを囲む赤の四角形を描画します。
tpos = tightPosition(ax); annotation("rectangle",tpos,Color="red",LineWidth=2)
座標軸の Position
プロパティをクエリして、別の位置ベクトルを取得します。このベクトルを使用して、サイズは同様だが既定の縦横比があるイメージのプロット領域を定義する、青色の四角形を描画します。このベクトルの値は、縦横比が異なる複数のイメージを連続して表示するときに、イメージ領域全体をクエリするのに役立つことがあります。
pos = ax.Position; annotation("rectangle",pos,Color="blue",LineWidth=2)
自動サイズ変更動作の制御
特定の状況を Axes
オブジェクトの自動的なサイズ変更のきっかけとすることができます。たとえば、Figure の対話的なサイズ変更や、タイトルや軸ラベルの追加により、自動的なサイズ変更が発動します。場合によっては、新しい座標軸のサイズが Position
と OuterPosition
の両方の値を満たせないことがあるため、PositionConstraint
プロパティによって維持する方の値を指定します。
PositionConstraint
プロパティは次の値の 1 つとして指定します。
"outerposition"
—OuterPosition
値を維持します。このオプションは、座標軸やその周囲のテキストが一定の外部境界を越えて広がらないようにする場合に使用します。MATLAB は、座標軸の内部領域 (プロットの表示場所) のサイズを調節して、外部境界内に内容を収めようとします。"innerposition"
—InnerPosition
値を維持します。このオプションは、座標軸の内部領域を Figure 内で一定のサイズにしておく場合に使用します。このオプションでは、テキストが Figure をはみ出す場合があります。
R2020a より前: ActivePositionProperty
および、値 "outerposition"
または "position"
を使用します。
通常は、PositionConstraint
プロパティを "outerposition"
に設定しておくことをお勧めします。ただし、座標軸のタイトルまたはラベルが極端に長いと、座標軸の内部領域が縮小され、読みづらくなる可能性があります。その場合は、周囲のテキストが Figure からはみ出しても、内部の座標軸を特定のサイズで維持することが望ましいといえます。
たとえば、2 つの座標軸を含む Figure を作成し、各軸の位置に同じ幅と高さを指定します。PositionConstraint
プロパティを、上側の軸では "outerposition"
に、下側の軸では "innerposition"
に設定します。上側の軸は、内部領域を縮小してテキストが収まるようにし、テキストが Figure の外にはみ出していないことがわかります。下側の軸では、内部領域のサイズは維持されていますが、一部のテキストが途切れています。
figure; ax1 = axes("Position",[0.13 0.58 0.77 0.34]); ax1.PositionConstraint = "outerposition"; plot(ax1,1:10) title(ax1,"Preserve OuterPosition") yticklabels(ax1,["My incredibly descriptive, excessively wordy, and overly long label",... "label 2","label 3"]) ax2 = axes("Position",[0.13 0.11 0.77 0.34]); ax2.PositionConstraint = "innerposition"; plot(ax2,1:10) title(ax2,"Preserve Position") yticklabels(ax2,["My incredibly descriptive, excessively wordy, and overly long label",... "label 2","label 3"])
表示域に合わせる動作
既定では、MATLAB によって、使用可能領域を埋めるために座標軸が引き伸ばされます。この "表示域に合わせる" 動作によって、いくらかの歪みが生じる場合があります。座標軸が、DataAspectRatio
、PlotBoxAspectRatio
および CameraViewAngle
プロパティに格納されているデータの縦横比、プロット ボックスの縦横比、およびカメラ画角の値と正確に一致しなくなる場合があります。"表示域に合わせる" 動作は、Axes
オブジェクトの DataAspectRatioMode
、PlotBoxAspectRatioMode
、および CameraViewAngleMode
プロパティが "auto"
に設定されている場合に有効になります。
データの縦横比、プロット ボックスの縦横比、カメラ画角のいずれかを指定した場合、"表示域に合わせる" 動作は無効となります。"表示域に合わせる" 動作を無効にすると、MATLAB は使用可能な領域内で座標軸を最大限に拡大しつつ、歪みが生じないようプロパティ値を厳密に維持します。
たとえば、次の図は、"表示域に合わせる" 動作を有効にした場合と無効にした場合の同じプロットを示しています。どちらのバージョンも、データの縦横比、プロット ボックスの縦横比、カメラ画角の値は同じです。ただし、左側のプロットでは拡大によりいくらかの歪みが生じています。
表示域に合わせる機能が有効 (歪みあり) | 表示域に合わせる機能が無効 (歪みなし) |
---|---|
|
|
参考
関数
axes
|tiledlayout
|title
|daspect
|pbaspect