このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
pan
R2022a対話型でグラフ領域を移動
構文
pan on
pan xon
pan yon
pan off
pan
pan(fig,...)
h = pan(fig)
説明
pan on は、現在の Figure の座標軸での移動モードをオンにします。
pan xon は、移動モードをオンにし、現在の Figure の 2 次元表示で、座標軸の x 方向のみの移動を有効にします。
pan yon は、移動モードをオンにし、現在の Figure の 2 次元表示で、座標軸の y 方向のみの移動を有効にします。
pan off は、現在の Figure の座標軸での移動モードをオフにします。R2018b 以降、一部の移動操作は移動モードにかかわらず既定で有効になっています。これらの既定の操作を無効にするには、関数 disableDefaultInteractivity を使用します。
pan は、現在の Figure で座標軸の移動モードを on または off に切り替えます。
pan(fig,...) は、指定した Figure における座標軸の移動モードを設定します。
h = pan(fig) は、Figure fig の Figure 移動 "モード オブジェクト" を返します。これを使用して、モードの動作をカスタマイズできます。
移動モード オブジェクトの使用
移動モード オブジェクトの次のプロパティにアクセスします。
Enable'on'|'off'— この Figure のモードが Figure 上で現在有効かどうかを指定します。Motion'horizontal'|'vertical'|'both'— Figure に対して有効な移動タイプ。このプロパティは、2 次元表示の座標軸 ([0 90]) にのみ影響します。FigureHandle <handle>— 関連する Figure のハンドル。これは読み取り専用のプロパティで、設定できません。ContextMenu <handle>— 右クリック操作時に表示される、カスタマイズしたコンテキスト メニューを指定します。UseLegacyExplorationModes'off'(既定の設定) | on/off logical 値 – レガシ モード。'on'または'off'、もしくは数値または logical1(true) または0(false) として指定します。'on'の値はtrueと等価であり、'off'はfalseと等価です。したがって、このプロパティの値を logical 値として使用できます。値はmatlab.lang.OnOffSwitchState型の on/off logical 値として格納されます。このプロパティを
'on'に設定すると、従来の Figure のモードの動作と一致するように UI figure の操作モードの動作が変更されます。詳細については、enableLegacyExplorationModesを参照してください。このプロパティを'on'に設定した後に'off'に戻すことはできません。このプロパティは、関数uifigureを使用して、または MATLAB® Online™ で作成された Figure の移動オブジェクトにのみ適用されます。
移動モードのコールバック
移動モード操作には次のコールバックをプログラムできます。
ButtonDownFilter <function_handle>—ButtonDownイベントをインターセプトする関数プログラマの定義により、アプリケーションはコールバックが返すものによって、移動操作を取り消すことができます。入力の関数ハンドルは、グラフィックス オブジェクトのコールバックと同様に、2 つの暗黙的な引数をもつ関数を参照する必要があります。
function [res] = myfunction(obj,event_obj) % obj handle to the object clicked on % event_obj event data (empty in this release) % res [output] a logical flag to determine whether the pan % operation should take place(for 'res' set to 'false') % or the 'ButtonDownFcn' property of the object should % take precedence (when 'res' is 'true')
ActionPreCallback <function_handle>— 移動前に実行する関数このコールバックは、移動操作の開始時にコードを実行する必要がある場合に設定します。関数ハンドルは、グラフィックス オブジェクトのコールバックと同様に、2 つの暗黙的な引数をもつ関数を参照する必要があります。
function myfunction(obj,event_obj) % obj handle to the figure that has been clicked on % event_obj object containing struct of event data
イベント データ struct には次のフィールドがあります。
AxesAxes のハンドルは、移動されます。
ActionPostCallback <function_handle>— 移動後に実行する関数このコールバックは、移動操作の終了時にコードを実行する必要がある場合に設定します。関数ハンドルは、グラフィックス オブジェクトのコールバックと同様に、2 つの暗黙的な引数をもつ関数を参照する必要があります。
function myfunction(obj,event_obj) % obj handle to the figure that has been clicked on % event_obj object containing struct of event data % (same as the event data of the % 'ActionPreCallback' callback)
移動モード ユーティリティ関数
移動モードにおける次の関数は、そのプロパティのいくつかをクエリして設定します。
flags = isAllowAxesPan(h,ax)— 座標軸を移動する権限をクエリする関数。入力として移動オブジェクト
hと座標軸ハンドルのベクトルaxを指定して関数isAllowAxesPanを呼び出すと、座標軸のハンドルのベクトルと同じ次元の logical 配列が返されます。この配列は、その axes オブジェクトで移動操作が使用可能であるかどうかを示します。setAllowAxesPan(h,ax,flag)— 座標軸を移動する権限を設定する関数。入力として移動オブジェクト
h、座標軸ハンドルのベクトルaxおよび論理スカラーflagを指定して関数setAllowAxesPanを呼び出すと、この axes オブジェクト上での移動操作が有効または無効に設定されます。cn = getAxesPanConstraint(h,ax)— 移動操作の制約を取得する関数。axes オブジェクト
axを入力として、移動オブジェクトhに対して関数getAxesPanConstraintを呼び出すと、座標軸の制約が返されます。返される制約は、'x'、'y'、'z'、'xy'、'xz'、'yz'または'unconstrained'のいずれかです。setAxesPanConstraint(h,ax,cnstr)— 移動操作の制約を設定する関数。axes オブジェクト
axと制約オプションcnstrを指定して、移動オブジェクトhに対して関数setAxesPanConstraintを呼び出すと、座標軸の制約を設定できます。制約は、'x'、'y'、'z'、'xy'、'xz'、'yz'または'unconstrained'のいずれかの値として指定します。sty = getAxes3DPanAndZoomStyle(h,ax)— 移動操作のスタイルを取得する関数。入力として移動オブジェクト
h、座標軸ハンドルのベクトルaxを指定して関数getAxes3DPanAndZoomStyleを呼び出すと、各座標軸の移動スタイルが返されます。各座標軸の戻り値は、'limits'または'camera'です。setAxes3DPanAndZoomStyle(h,ax,style)— 移動操作のスタイルを設定する関数。移動オブジェクト
h、座標軸ハンドルのベクトルaxおよび文字配列styleを指定して関数setAxes3DPanAndZoomStyleを呼び出すと、各座標軸の移動スタイルが設定されます。スタイルを'limits'または'camera'として指定します。cns = getAxesPanMotion(h,ax)— 移動操作の制約を取得する関数 (非推奨。getAxesPanConstraintを使用してください)。移動オブジェクト
hに対し axes オブジェクトのベクトルaxを入力として関数getAxesPanMotionを呼び出すと、axと同じ次元をもつ文字 cell 配列が返されます。この配列は、各座標軸の制約を示します。各座標軸の戻り値は、'horizontal'、'vertical'または'both'です。setAxesPanMotion(h,ax,constraints)— 移動操作の制約を設定する関数 (非推奨。setAxesPanConstraintを使用してください)。移動オブジェクト
hに対し axes オブジェクトのベクトルaxおよび文字配列constraintsを指定して関数setAxesPanMotionを呼び出すと、各座標軸の制約が設定されます。制約を'horizontal'、'vertical'または'both'として指定します。
例
ヒント
移動モード オブジェクトを作成したなら、異なる座標軸の動作のカスタマイズに使用できます。また、移動モード オブジェクトのコールバック関数も順次変更できます。
メモ
対話型モードでは Figure コールバックを変更しないでください。モードがアクティブな場合 (移動中、ズーム中の場合など)、Figure のコールバックのいずれかを変更しようとすると警告が表示され、操作は失敗します。この規則の 1 つの例外は、Figure の WindowButtonMotionFcn コールバックであり、これはモード内から変更できます。したがって、Figure のコールバックを更新する UI を作成する場合は、これを行う前に、どの対話モードがアクティブになっているか、何らかの方法でその UI で追跡する必要があります。
1 つのモードオブジェクトに対し、異なる移動動作を異なる subplot Axes に割り当て、関数 linkaxes を使用してそれらをリンクした場合は、リンクした Axes 上でマウス操作を行っても、他の Axes に設定した動作には影響を受けません。
代替方法
ツール バーの [移動] ツールを使用してプロットでの移動モードの有効/無効を切り替えるか、Figure の [ツール] メニューから [移動] を選択します。