Main Content

daspect

各軸でのデータ単位の長さを制御

説明

daspect(ratio) は、現在の座標軸におけるデータの縦横比を設定します。データの縦横比は、x 軸、y 軸および z 軸のデータ単位の相対的な長さです。各軸でのデータ単位の相対的な長さを表す正の値からなる 3 要素ベクトルとして、ratio を指定します。たとえば、[1 2 3] は、x 軸の 0 から 1 までの長さが y 軸の 0 から 2 までの長さ、および z 軸の 0 から 3 までの長さに等しいことを示します。すべての方向でデータ単位の長さが等しい場合は、[1 1 1] を使用します。

d = daspect は、現在の座標軸におけるデータの縦横比を返します。

daspect auto は、座標軸によってデータの縦横比を選択できる自動モードに設定します。座標軸の表示域に合わせる機能を有効にするには、モードが自動に設定されていなければなりません。

daspect manual は手動モードに設定し、Axes オブジェクトの DataAspectRatio プロパティに保存されている比率を使用します。モードが手動の場合、座標軸の表示域に合わせる動作は無効になります。データの縦横比の値を指定すると、モードが手動に設定されます。

m = daspect('mode') は現在のモードを返します。これは 'auto' または 'manual' です。データの縦横比の指定やモードの手動への設定を行わない限り、モードは既定で自動となります。

___ = daspect(ax,___) は、現在の座標軸の代わりに ax で指定される座標軸を使用します。前述の任意の構文で、最初の入力引数として座標軸を指定します。'auto''manual' の入力は、一重引用符で囲みます。

すべて折りたたむ

一連のデータをプロットします。データの縦横比を [1 1 1] に設定して、すべての方向で等しい長さのデータ単位を使用します。

t = linspace(0,2*pi);
x = cos(t);
y = sin(t);
plot(x,y)
daspect([1 1 1])

Figure contains an axes object. The axes object contains an object of type line.

一連のデータをプロットします。x 軸方向の 1 データ単位の長さが、y 軸方向および (非表示の) z 軸方向の 2 データ単位と等しくなるよう、データの縦横比を設定します。

t = linspace(0,2*pi);
x = cos(t);
y = sin(t);
plot(x,y)
daspect([1 2 2])

Figure contains an axes object. The axes object contains an object of type line.

データの縦横比を設定すると、それに対応するモードが手動に変更されます。現在のデータ縦横比のモードをクエリします。

d = daspect('mode')
d = 
'manual'

乱数データの 3 次元散布図を作成し、データの縦横比を設定します。その後、既定のデータの縦横比に戻します。

X = rand(100,1);
Y = rand(100,1);
Z = rand(100,1);
scatter3(X,Y,Z)
daspect([3 2 1])

Figure contains an axes object. The axes object contains an object of type scatter.

daspect auto

Figure contains an axes object. The axes object contains an object of type scatter.

表面プロットを作成し、データの縦横比をクエリします。

[x,y] = meshgrid(-2:.2:2);
z = x.*exp(-x.^2 - y.^2);
surf(x,y,z)

Figure contains an axes object. The axes object contains an object of type surface.

d = daspect
d = 1×3

     4     4     1

縦横比は、x 軸方向の 4 単位が、y 軸方向の 4 単位および z 軸方向の 1 単位に等しいことを示します。たとえば、比率が [4 4 1] の場合、x 軸の 0 から 1 までの長さは、y 軸の 0 から 1 までの長さ、および z 軸の 0 から 0.25 までの長さに等しくなります。

座標軸 ax1 および ax2 を含む 2 行 1 列のタイル表示チャート レイアウトを作成します。座標軸にプロットして、ax2 を関数 daspect の最初の入力引数に指定し、下のプロットについてデータの縦横比を設定します。

tiledlayout(2,1)
ax1 = nexttile;
plot(ax1,1:10)

ax2 = nexttile;
plot(ax2,1:10)
daspect(ax2,[1 2 1])

Figure contains 2 axes objects. Axes object 1 contains an object of type line. Axes object 2 contains an object of type line.

入力引数

すべて折りたたむ

データの縦横比。正の値の 3 要素ベクトルとして指定します。たとえば、daspect([1 2 3]) は、x 軸の 1 単位の長さが y 軸の 2 単位、および z 軸の 3 単位の長さに等しくなるよう指定します。

データの縦横比を指定すると、Axes オブジェクトの DataAspectRatio プロパティが設定されます。DataAspectRatio プロパティは PlotBoxAspectRatioXLimYLimZLim の各プロパティと連動して、x 軸、y 軸、z 軸の長さとスケールを制御します。

比率を指定すると、DataAspectRatioMode プロパティが 'manual' に設定され、座標軸の表示域に合わせる動作が無効になります。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

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

出力引数

すべて折りたたむ

現在のデータの縦横比。x 軸、y 軸、z 軸でのデータ単位の長さの比率を表す値からなる、3 要素ベクトルとして返されます。

データの縦横比をクエリすると、対応する Axes オブジェクトの DataAspectRatio プロパティの値が返されます。

現在のデータの縦横比のモード。'auto' または 'manual' として返されます。モードが自動の場合、MATLAB® によって適切なデータの縦横比の値が決定されます。値を指定した場合、モードは手動に切り替わります。

データの縦横比のモードをクエリすると、対応する Axes オブジェクトの DataAspectRatioMode プロパティの値が返されます。

詳細

すべて折りたたむ

表示域に合わせる

"表示域に合わせる" 動作が有効の場合、使用可能な領域に合わせて MATLAB は座標軸を拡大します。座標軸が、その DataAspectRatioPlotBoxAspectRatio および CameraViewAngle プロパティに格納されているデータの縦横比、プロット ボックスの縦横比およびカメラ画角の値と正確に一致しなくなる場合があります。

データの縦横比、プロット ボックスの縦横比、カメラ画角のいずれかを指定した場合、"表示域に合わせる" 動作は無効となります。この動作を無効にすると、MATLAB は使用可能な領域内で座標軸を最大限に拡大しつつ、プロパティ値を厳密に維持します。歪みは発生しません。詳細については、座標軸のレイアウトの制御を参照してください。

アルゴリズム

関数 daspect は、データの縦横比に関連するいくつかの座標軸プロパティの設定およびクエリを行います。

  • DataAspectRatio — データの縦横比値を保存するプロパティ。

  • DataAspectRatioMode — データの縦横比モードを保存するプロパティ。比率を設定すると、このプロパティは 'manual' に変更されます。

バージョン履歴

R2006a より前に導入