Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

quiver

矢印プロットまたはベクトル プロット

  • Cartesian grid with plotted arrows

説明

quiver(X,Y,U,V)は、XおよびYで指定された直交座標に、方向成分UおよびVをもつ矢印をプロットします。たとえば、最初の矢印は、点X(1)Y(1)を起点として、U(1)に従って水平方向に伸び、V(1)に従って垂直方向に伸びます。既定では、関数quiverは、矢印が重なり合わないように矢印の長さをスケーリングします。

quiver(U,V)は、UおよびVで指定された方向成分をもつ矢印を、等間隔の点にプロットします。

  • UVがベクトルの場合、矢印のx座標の範囲は 1 からUVの要素数までとなり、y座標はすべて 1 になります。

  • UVが行列の場合、矢印のx座標の範囲は 1 からUVの列数までとなり,矢印のy座標の範囲は 1 からUVの行数までとなります。

quiver(___,scale)は、次のように矢印の長さを調整します。

  • scaleが正の数値のとき、関数quiverは、矢印が重なり合わないように矢印の長さを自動的に調整してから、係数scaleで長さを伸ばします。たとえば、scaleが 2 の場合、矢印の長さは 2 倍になり、scaleが 0.5 の場合、矢印の長さは半分になります。

  • quiver(X,Y,U,V,'off')のように、scale'off'または0の場合、自動スケーリングは無効になります。

quiver(___,LineSpec)は、ライン スタイル、マーカー、および色を設定します。マーカーは、XYで指定した点に表示されます。LineSpecを使用してマーカーを指定する場合、quiverは矢じりを表示しません。マーカーを指定し、かつ矢じりを表示するには、代わりにMarkerプロパティを設定します。

quiver(___,LineSpec,'filled')は、LineSpecで指定したマーカーを塗りつぶします。

quiver(___,Name,Value)は、1 つ以上の名前と値のペアの引数を使用して、矢印のプロパティを指定します。プロパティの一覧については、Quiver のプロパティを参照してください。名前と値のペアの引数は、その他すべての入力引数の後に指定します。名前と値のペアの引数は、その矢印プロット内のすべての矢印に適用されます。

quiver(ax,___)は、現在の座標軸 (gca) ではなく、axで指定された座標軸に矢印プロットを作成します。ax引数は、前述の構文における任意の入力引数の組み合わせの前で指定できます。

q = quiver(___)Quiverオブジェクトを返します。このオブジェクトは、矢印プロットを作成後に、矢印プロットのプロパティを制御するのに便利です。

すべて折りたたむ

北アメリカの大気の流れを表すサンプル データを読み込みます。この例では、データのサブセットを選択します。

load('wind','x','y','u','v') X = x(11:22,11:22,1); Y = y(11:22,11:22,1); U = u(11:22,11:22,1); V = v(11:22,11:22,1);

選択したサブセットの矢印プロットを作成します。ベクトルXYは各矢印の起点の位置を表し、UVは各矢印の方向成分を表します。既定では、関数quiverは、矢印が重なり合わないよう矢印の長さを短くします。axis equalを呼び出し、各軸で等しい長さのデータ単位を使用します。これにより、矢印が正しい方向を指すようになります。

箭袋(X, Y, U, V)轴equal

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

既定では、関数quiverは、矢印が重なり合わないよう矢印の長さを短くします。自動スケーリングを無効にして、矢印の長さがUVのみによって決まるようにするには、scale引数を0に設定します。

たとえば、関数meshgridを使用して、X値とY値のグリッドを作成します。これらの値を使用して、方向成分を指定します。次に、自動スケーリングなしで、矢印プロットを作成します。

[X,Y] = meshgrid(0:6,0:6); U = 0.25*X; V = 0.5*Y; quiver(X,Y,U,V,0)

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

関数 z = x e - x 2 - y 2 の勾配と等高線をプロットします。関数quiverを使用して勾配をプロットし、関数contourを使用して等高線をプロットします。

まず、等間隔のx値とy値のグリッドを作成します。それらを使用してzを計算します。次に、点の間隔を指定することによって、zの勾配を特定します。

spacing = 0.2; [X,Y] = meshgrid(-2:spacing:2); Z = X.*exp(-X.^2 - Y.^2); [DX,DY] = gradient(Z,spacing);

勾配ベクトルを矢印プロットとして表示します。次に、同じ座標軸上に等高線を表示します。axis equalを呼び出して、勾配ベクトルが等高線に対して垂直に表示されるよう表示を調整します。

quiver(X,Y,DX,DY) holdoncontour(X,Y,Z) axisequalholdoff

Figure contains an axes object. The axes object contains 2 objects of type quiver, contour.

矢印プロットを作成し、矢印の色を指定します。

[X,Y] = meshgrid(-pi:pi/8:pi,-pi:pi/8:pi); U = sin(Y); V = cos(X); quiver(X,Y,U,V,'r')

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

X値とY値のグリッドを作成してから、方向成分UおよびVを 2 組作成します。

[X,Y] = meshgrid(0:pi/8:pi,-pi:pi/8:pi); U1 = sin(X); V1 = cos(Y); U2 = sin(Y); V2 = cos(X);

2つの座標軸ax1ax2をもつプロットのタイル レイアウトを作成します。各座標軸に矢印プロットとタイトルを追加します "(R2019bより前では、tiledlayoutおよびnexttileの代わりにsubplotを使用してください)。"

tiledlayout(1,2) ax1 = nexttile; quiver(ax1,X,Y,U1,V1) axisequaltitle(ax1,'Left Plot') ax2 = nexttile; quiver(ax2,X,Y,U2,V2) axisequaltitle(ax2,'Right Plot')

Figure contains 2 axes objects. Axes object 1 with title Left Plot contains an object of type quiver. Axes object 2 with title Right Plot contains an object of type quiver.

矢印プロットを作成し、quiver オブジェクトを返します。次に、矢じりを削除し、各矢印の起点にドット マーカーを追加します。

[X,Y] = meshgrid(-pi:pi/8:pi,-pi:pi/8:pi); U = sin(Y); V = cos(X); q = quiver(X,Y,U,V); q.ShowArrowHead ='off'; q.Marker ='.';

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

入力引数

すべて折りたたむ

矢印の起点のx座標。スカラー、ベクトル、または行列として指定します。

XYがベクトルで、UVが行列の場合、quiverXYを行列に拡張します。その場合、size(U)size(V)[length(Y) length(X)]に等しくなければなりません。ベクトルの行列への拡張の詳細については、meshgridを参照してください。

XYが行列の場合、XYU、およびVは同じサイズでなければなりません。

矢印の起点のy座標。スカラー、ベクトル、または行列として指定します。

XYがベクトルで、UVが行列の場合、quiverXYを行列に拡張します。その場合、size(U)size(V)[length(Y) length(X)]に等しくなければなりません。ベクトルの行列への拡張の詳細については、meshgridを参照してください。

XYが行列の場合、XYU、およびVは同じサイズでなければなりません。

矢印のx成分。スカラー、ベクトル、または行列として指定します。

XYがベクトルの場合、size(U)size(V)[length(Y) length(X)]に等しくなければなりません。

XYが行列の場合、XYU、およびVは同じサイズでなければなりません。

矢印のy成分。スカラー、ベクトル、または行列として指定します。

XYがベクトルの場合、size(U)size(V)[length(Y) length(X)]に等しくなければなりません。

XYが行列の場合、XYU、およびVは同じサイズでなければなりません。

ライン スタイル、マーカーおよび色。記号を含む文字ベクトルまたは string として指定します。記号の順番は任意です。3 つの特性 (ライン スタイル、マーカーおよび色) をすべて指定する必要はありません。

LineSpecを使用してマーカーを指定する場合、quiverは矢じりを表示しません。マーカーを指定し、かつ矢じりを表示するには、代わりにMarkerプロパティを設定します。

例:'--or'は丸いマーカーをもった赤い破線

ライン スタイル 説明 結果として得られる線
'-' 実線

Sample of solid line

'--' 破線

Sample of dashed line

':' 点線

Sample of dotted line

'-.' 一点鎖線

Sample of dash-dotted line, with alternating dashes and dots

マーカー 説明 結果のマーカー
'o'

Sample of circle marker

'+' プラス記号

Sample of plus sign marker

'*' アスタリスク

Sample of asterisk marker

'.'

Sample of point marker

'x' 十字

Sample of cross marker

'_' 水平線

Sample of horizontal line marker

'|' 垂直線

Sample of vertical line marker

's' 正方形

Sample of square marker

'd' 菱形

Sample of diamond line marker

'^' 上向き三角形

Sample of upward-pointing triangle marker

'v' 下向き三角形

Sample of downward-pointing triangle marker

'>' 右向き三角形

Sample of right-pointing triangle marker

'<' 左向き三角形

Sample of left-pointing triangle marker

'p' 星形五角形

Sample of pentagram marker

'h' 星形六角形

Sample of hexagram marker

色名 省略名 RGB 3 成分 外観
'red' 'r' [1 0 0]

Sample of the color red

'green' 'g' [0 1 0]

Sample of the color green

'blue' 'b' [0 0 1]

Sample of the color blue

'cyan' 'c' [0 1 1]

Sample of the color cyan

'magenta' 'm' [1 0 1]

Sample of the color magenta

'yellow' 'y' [1 1 0]

Sample of the color yellow

'black' 'k' [0 0 0]

Sample of the color black

'white' 'w' [1 1 1]

Sample of the color white

矢印のスケーリング係数。正の数値または'off'として指定します。既定では、関数quiverは、矢印が重なり合わないように矢印を自動的にスケーリングします。関数quiverは、矢印を自動的にスケーリングした後に、スケーリング係数を適用します。

scaleを指定することは、quiver オブジェクトのAutoScaleFactorプロパティを設定することと同じです。たとえば、scale2に指定すると、矢印の長さが 2 倍になります。scale0.5に指定すると、矢印の長さが半分になります。

自動スケーリングを無効にするには、scale'off'または0に指定します。それらの値のいずれかを指定すると、quiver オブジェクトのAutoScaleプロパティが'off'に設定され、矢印の長さがUVのみによって決まるようになります。

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

名前と値の引数

例:'Color','r','LineWidth',1

オプションのName,Valueの引数ペアをコンマ区切りで指定します。Nameは引数名で、Valueは対応する値です。Nameは引用符で囲まなければなりません。Name1,Value1,...,NameN,ValueNのように、複数の名前と値のペアの引数を任意の順序で指定できます。

メモ

ここでは、プロパティの一部だけを紹介しています。完全な一覧については、Quiver のプロパティを参照してください。

矢印の軸と矢じりの幅。ポイント単位の 0 より大きいスカラー数値として指定します。1 ポイントは1/72インチです。既定値は0.5ポイントです。

例:0.75

矢じりの表示。'on'または'off'もしくは数値または logical1(true) または0(false) として指定します。'on'の値はtrueと等価であり、'off'falseと等価です。したがって、このプロパティの値を logical 値として使用できます。値はmatlab.lang.OnOffSwitchState型の on/off logical 値として格納されます。

  • 'on'— ベクトルを矢じり付きで表示します。

  • 'off'— ベクトルを矢じりなしで表示します。

矢印の長さの自動スケーリング。'on'または'off'もしくは数値または logical1(true) または0(false) として指定します。'on'の値はtrueと等価であり、'off'falseと等価です。したがって、このプロパティの値を logical 値として使用できます。値はmatlab.lang.OnOffSwitchState型の on/off logical 値として格納されます。

  • 'on'— グリッドで定義された座標データ内に収まるように矢印の長さをスケーリングし、矢印が重なり合わないようにします。関数quiverまたはquiver3は、その後にその矢印の長さに対してAutoScaleFactorを適用します。

  • 'off'— 矢印の長さをスケーリングしません。

スケール係数。スカラーとして指定します。値が2の場合は矢印の長さが 2 倍になり、値が0.5の場合は矢印の長さが半分になります。

このプロパティはAutoScale'on'に設定されている場合のみ有効です。

例:2

ヒント

極座標を使用して矢印プロットを作成するには、先に、関数pol2cartを使用して直交座標に変換します。

拡張機能

バージョン履歴

R2006a より前に導入

参考

関数

プロパティ