Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

pan

移動モードの有効化

説明

移動モードを使用して、座標軸の表示を対話的に移動してデータを探索できます。関数 pan を使用して、移動モードの有効化または無効化と、その他の基本オプションの設定を行います。移動モードの動作をさらに制御するには、pan オブジェクトを返して使用します。

線グラフ、棒グラフ、ヒストグラム、表面グラフを含むほとんどのチャートで、移動モードがサポートされています。移動モードをサポートするチャートには通常、座標軸ツール バーに移動アイコン が表示されます。

また、既定で有効になっている組み込みの座標軸操作を使用して、対話的にデータを探索することもできます。たとえば、座標軸をドラッグすることにより、2 次元座標軸の表示を移動できます。組み込み操作では、操作モードを有効にする必要がなく、操作モードよりも応答が高速です。一方、移動モードを有効にして、移動の動作をカスタマイズできます。組み込み操作の詳細については、チャートの対話機能の制御を参照してください。

作成

説明

pan option は、現在の Figure 内のすべての座標軸について、移動モードを設定します。たとえば、pan on は移動モードを有効に、pan xon は移動モードを x 次元についてのみ有効に、pan yon は移動モードを y 次元についてのみ有効に、pan off は移動モードを無効にします。

移動モードが有効の場合、カーソルまたはキーボードを使用して座標軸の表示を移動します。

  • カーソル — 座標軸でカーソルをクリックしてドラッグします。

  • キーボード — 垂直方向に移動するには、上矢印 (↑) キーまたは下矢印 (↓) キーを押します。水平方向に移動するには、左矢印 (←) キーまたは右矢印 (→) キーを押します。

一部の組み込み操作は、現在の操作モードに関係なく既定で有効になったままです。移動モードに依存しない組み込みの移動操作を無効にするには、関数 disableDefaultInteractivity を使用します。

pan は移動モードを切り替えます。移動モードが無効になっている場合、pan を呼び出すと、onxon、または yon の、最近使用した移動オプションが復元されます。

pan(fig,option) は、指定された Figure 内のすべての座標軸について、移動モードを設定します。たとえば、Figure fig 内のすべての座標軸について移動モードを有効にするには、pan(fig,'on') を使用します。

pan(ax,option) は、指定された座標軸について移動モードを設定します。たとえば、座標軸 ax について移動モードを有効にするには、pan(ax,'on') を使用します。この構文は、App Designer で作成されたアプリ、および関数 uifigure を使用して作成されたアプリで使用します。 (R2023a 以降)

p = pan は、現在の Figure に対して pan オブジェクトを作成します。この構文は、移動モードと動作をカスタマイズするのに便利です。

p = pan(fig) は、指定された Figure に対して pan オブジェクトを作成します。

入力引数

すべて展開する

移動モードのオプション。次の値のいずれかとして指定します。

  • 'on' — 移動モードを有効にします。

  • 'off' — 移動モードを無効にします。一部の組み込み操作は、現在の操作モードに関係なく既定で有効になったままです。移動モードに依存しない組み込みの移動操作を無効にするには、関数 disableDefaultInteractivity を使用します。

  • 'xon' — x 次元についてのみ移動モードを有効にします。

  • 'yon' — y 次元についてのみ移動モードを有効にします。

  • 'toggle' — 移動モードを切り替えます。移動モードが無効になっている場合、'toggle' は、'on''xon'、または 'yon' の、最近使用した移動オプションを復元します。このオプションを使用することは、引数を指定せずに pan を呼び出すことと同じです。

ターゲット Figure。Figure オブジェクトとして指定します。ターゲット Figure を指定すると、現在または将来のすべての Axes の子にモードが設定されます。

ターゲット座標軸。Axes オブジェクトとして指定します。

プロパティ

すべて展開する

移動を許可する次元。次の値のいずれかとして指定します。

  • 'both' — x 次元および y 次元での移動が可能。

  • 'horizontal' — x 次元でのみ移動が可能。

  • 'vertical' — y 次元でのみ移動が可能。

このプロパティは、2 次元表示の座標軸 (view([0 90]) を呼び出す場合など) にのみ影響します。3 次元表示での移動次元を制御するには、panInteraction オブジェクトを使用します。

コンテキスト メニュー。ContextMenu オブジェクトとして指定します。このプロパティを使用して、移動モードが有効になっている座標軸で右クリックしたときにコンテキスト メニューを表示します。関数 uicontextmenu を使用して、コンテキスト メニューを作成します。

移動抑制のコールバック。次のいずれかの値として指定します。

  • 関数ハンドル

  • 関数ハンドルと追加の引数を含む cell 配列

  • ベース ワークスペース内で評価される有効な MATLAB® コマンドまたは MATLAB 関数を含む文字ベクトル (非推奨)

定義する条件下で、このプロパティを使用して移動を抑制します。数値または logical 出力 1 (true) は移動を抑制し、数値または logical 出力 0 (false) は移動を許可します。関数ハンドルを使用してこのプロパティを指定した場合、MATLAB は次の 2 つの引数をコールバック関数に渡します。

  • axes — 移動を実行している axes オブジェクト。

  • eventData — 空の引数。この引数が使用されないことを示すには、関数定義の中で引数をチルダ文字 (~) に置き換えます。

関数ハンドルを使用してこのプロパティを指定する場合は、関数の出力を変数に代入しなければなりません。

コールバックの詳細については、グラフィックス オブジェクトのコールバックの作成を参照してください。

移動前に実行する関数。次のいずれかの値として指定します。

  • 関数ハンドル

  • 関数ハンドルと追加の引数を含む cell 配列

  • ベース ワークスペース内で評価される有効な MATLAB コマンドまたは MATLAB 関数を含む文字ベクトル (非推奨)

移動を開始する際は、このプロパティを使用してコードを実行します。関数ハンドルを使用してこのプロパティを指定した場合、MATLAB は次の 2 つの引数をコールバック関数に渡します。

  • figure — 移動を実行している Figure オブジェクト。

  • axesStruct — 1 つのフィールド Axes (移動を実行している axes オブジェクト) を含む構造体。この引数をコールバック関数で使用しない場合は、チルダ文字 (~) に置き換えます。

コールバックの詳細については、グラフィックス オブジェクトのコールバックの作成を参照してください。

移動後に実行する関数。次のいずれかの値として指定します。

  • 関数ハンドル

  • 関数ハンドルと追加の引数を含む cell 配列

  • ベース ワークスペース内で評価される有効な MATLAB コマンドまたは MATLAB 関数を含む文字ベクトル (非推奨)

移動の終了後に、このプロパティを使用してコードを実行します。関数ハンドルを使用してこのプロパティを指定した場合、MATLAB は次の 2 つの引数をコールバック関数に渡します。

  • figure — 移動を実行している Figure オブジェクト。

  • axesStruct — 1 つのフィールド Axes (移動を実行している axes オブジェクト) を含む構造体。この引数をコールバック関数で使用しない場合は、チルダ文字 (~) に置き換えます。

コールバックの詳細については、グラフィックス オブジェクトのコールバックの作成を参照してください。

移動モードの状態。'off' または 'on' として指定します。

この プロパティ は読み取り専用です。

pan オブジェクトの作成時に指定した Figure オブジェクト。Figure を指定しなかった場合、FigureHandle は、pan オブジェクトの作成時にアクティブであった Figure になります。

レガシ モード。'on' または 'off' もしくは数値または logical 1 (true) または 0 (false) として指定します。'on' の値は true と等価であり、'off'false と等価です。したがって、このプロパティの値を logical 値として使用できます。値は OnOffSwitchState 型の on/off logical 値として格納されます。

このプロパティは、関数 uifigure を使用して、または MATLAB Online™ で作成された Figure の pan オブジェクトにのみ適用されます。このプロパティを 'on' に設定すると、従来の Figure のモードの動作と一致するように UI figure の操作モードの動作が変更されます。詳細については、enableLegacyExplorationModes を参照してください。

このプロパティを 'on' に設定した後に 'off' に戻すことはできません。

オブジェクト関数

pan オブジェクト関数を使用して、Figure 内の axes オブジェクトの移動動作をカスタマイズします。これらすべての関数について、axes オブジェクトおよび移動モード オブジェクトは同じ Figure に関連付けられていなければなりません。

setAllowAxesPan

関数 setAllowAxesPan は座標軸を移動する権限を設定します。

pan オブジェクト p に対して、axes オブジェクトのベクトル axes と logical スカラー tf を入力として setAllowAxesPan(p,axes,tf) を呼び出すと、その axes オブジェクトでの移動操作を有効または無効にできます。

setAllowAxesPan を使用して axes の移動モードを有効にしても、Figure の移動モードは有効になりません。これを行うには、pan オブジェクトの Enable プロパティを設定します。

isAllowAxesPan

関数 isAllowAxesPan は座標軸を移動する権限をクエリします。

pan オブジェクト p に対して、axes オブジェクトのベクトル axes を入力として tf = isAllowAxesPan(p,axes) を呼び出すと、axes と同じサイズの logical 配列 tf が返されます。tf は、その axes オブジェクトで移動操作が使用可能かどうかを示します。

isAllowAxesPan を使用して axes の移動モードを返しても、Figure の移動モードは返されません。これを行うには、pan オブジェクトの Enable プロパティにアクセスします。

setAxesPanConstraint

関数 setAxesPanConstraint は、座標軸の移動次元を設定します。

pan オブジェクト p に対して、axes オブジェクトのベクトル axes と次元値のスカラー d を入力として setAxesPanConstraint(p,axes,d) を呼び出すと、その axes オブジェクトの移動次元が、'x''y''z''xy''xz''yz'、または 'unconstrained' のいずれかの次元値に設定されます。

setAxesPanConstraint を使用して axes の移動次元を設定しても、Figure の移動次元は設定されません。これを行うには、pan オブジェクトの Motion プロパティを設定します。

getAxesPanConstraint

関数 getAxesPanConstraint は、座標軸の移動次元を返します。

pan オブジェクト p に対して、axes オブジェクトのベクトル axes を入力として d = getAxesPanConstraint(p,axes) を呼び出すと、各 axes オブジェクトの移動次元を示す cell 配列 d が返されます。

getAxesPanConstraint を使用して axes の移動次元を返しても、Figure の移動次元は返されません。これを行うには、pan オブジェクトの Motion プロパティにアクセスします。

setAxes3DPanAndZoomStyle

関数 setAxes3DPanAndZoomStyle は、座標軸の移動スタイルを設定します。

pan オブジェクト p に対して、axes オブジェクトのベクトル axes と移動スタイルの文字配列 s を入力として setAxes3DPanAndZoomStyle(p,axes,s) を呼び出すと、その axes オブジェクトの移動スタイルが設定されます。既定では、移動スタイルは 'limits' (座標軸の範囲を変更して移動) です。移動スタイルを 'camera' として指定すると、カメラの画角を変更して移動します。

カメラの画角の詳細については、カメラ グラフィックス用語を参照してください。

getAxes3DPanAndZoomStyle

関数 getAxes3DPanAndZoomStyle は、座標軸の移動スタイルを返します。

pan オブジェクト p に対して、axes オブジェクトのベクトル axes を入力として s = getAxes3DPanAndZoomStyle(p,axes) を呼び出すと、各 axes オブジェクトの移動スタイルを示す cell 配列 s が返されます。

setAxesPanMotion (非推奨)

この関数は推奨されません。代わりに setAxesPanConstraint を使用してください。

pan オブジェクト p に対して、axes オブジェクトのベクトル axes と移動次元の文字配列 d を入力として setAxesPanMotion(p,axes,d) を呼び出すと、その axes オブジェクトの移動次元が、'horizontal''vertical'、または 'both' のいずれかの次元値に設定されます。

setAxesPanMotion によって設定される axes の移動次元は、Motion プロパティを使用して設定される Figure の移動次元と同じではありません。

getAxesPanMotion (非推奨)

この関数は推奨されません。代わりに getAxesPanConstraint を使用してください。

pan オブジェクト p に対して、axes オブジェクトのベクトル axes を入力として d = getAxesPanMotion(p,axes) を呼び出すと、各 axes オブジェクトの移動次元を示す cell 配列 d が返されます。

getAxesPanMotion を使用して返される axes の移動次元は、Motion プロパティを使用して返される Figure の移動次元と同じではありません。

すべて折りたたむ

グラフをプロットし、移動モードを有効にします。次に、座標軸を対話形式で移動します。

plot(magic(10))
pan on

タイル表示チャート レイアウト内で 4 つの座標軸を作成し、それぞれに異なる移動動作を割り当てます。次に、座標軸を対話形式で移動します。

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

ax2 = nexttile;
plot(rand(3));
setAllowAxesPan(p,ax2,false);

ax3 = nexttile;
plot(peaks);
setAxesPanConstraint(p,ax3,'x');

ax4 = nexttile;
contour(peaks);
setAxesPanMotion(p,ax4,'horizontal');

トリガーする移動モード オブジェクトのボタンダウン コールバックを作成します。以下のコードを新規ファイルにコピーし、実行して、移動動作を確認してください。

function demo
    % Allow a line to have its own 'ButtonDownFcn' callback
    hLine = plot(rand(1,10));
    hLine.ButtonDownFcn = 'disp(''This executes'')';
    hLine.Tag = 'DoNotIgnore';
    h = pan;
    h.ButtonDownFilter = @mycallback;
    h.Enable = 'on';
    % Mouse click on the line
end

function [flag] = mycallback(obj,event_obj)
    % If the object tag is 'DoNotIgnore', then return true

    % Indicate what the target is
    disp(['Clicked ' obj.Type ' object'])
    objTag = obj.Tag;
    if strcmpi(objTag,'DoNotIgnore')
        flag = true;
    else
        flag = false;
    end
end

トリガーする移動モード オブジェクトのボタンダウン前とボタンダウン後のイベント用にコールバックを作成します。以下のコードを新規ファイルにコピーし、実行して、移動動作を確認してください。

function demo
    % Listen to pan events
    plot(1:10);
    p = pan;
    p.ActionPreCallback = @myprecallback;
    p.ActionPostCallback = @mypostcallback;
    p.Enable = 'on';
end

function myprecallback(obj,evd)
    disp('A pan is about to occur.');
end

function mypostcallback(obj,evd)
    newLim = evd.Axes.XLim;
    msgbox(sprintf('The new X-Limits are [%.2f,%.2f].',newLim));
end

ユーザーが右クリックでズーム モードに切り替えることができるコンテキスト メニューを作成します。

figure
plot(magic(10)); 
pCM = uicontextmenu; 
pMenu = uimenu('Parent',pCM,'Label','Switch to zoom',...
        'Callback','zoom(gcbf,''on'')'); 
pPan = pan(gcf); 
pPan.ContextMenu = pCM; 
pan('on')

詳細

すべて展開する

代替機能

座標軸ツール バー

一部のチャートでは、座標軸ツール バーの移動アイコン をクリックして、移動モードを有効にします。

バージョン履歴

R2006a より前に導入

すべて展開する