Main Content

zoom

ズーム モードの有効化

説明

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

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

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

作成

説明

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

ズーム モードが有効の場合、カーソル、スクロール ホイール、またはキーボードを使用して座標軸の表示をズームします。

  • カーソル — ズームインするには、カーソルを座標軸の中心にする場所に置いて、クリックします。ズームアウトするには、Shift キーを押しながらクリックします。四角形の領域にズームインするには、クリックしてドラッグします。axes オブジェクトを基本のズーム レベルに戻すには、座標軸内でダブルクリックします。

  • スクロール ホイール — ズームインするには、上にスクロールします。ズームアウトするには、下にスクロールします。

  • キーボード — ズームインするには、上矢印 (↑) キーを押します。ズームアウトするには、下矢印 (↓) キーを押します。

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

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

zoom(factor) は、現在の座標軸を、指定された倍率でズームします (ズーム モードには影響なし)。たとえば、zoom(3) のように、factor を 1 より大きい値として指定するとズームインします。たとえば、zoom(0.5) のように、factor を 0 と 1 の間の値として指定するとズームアウトします。

zoom(fig,___) は、指定された Figure 内のすべての座標軸について、前述の任意の構文でズーム モードを設定します。ズーム モード オプションまたはズーム倍率として追加の引数を指定します。たとえば、Figure fig 内のすべての座標軸についてズーム モードを有効にするには、zoom(fig,'on') を使用します。すべての座標軸を 2 倍ズームするには、zoom(fig,2) を使用します。

zoom(ax,___) は、指定された座標軸についてズーム モードを設定します。ズーム モード オプションまたはズーム倍率として追加の引数を指定します。たとえば、座標軸 ax についてズーム モードを有効にするには、zoom(ax,'on') を使用します。座標軸 ax を 2 倍ズームするには、zoom(ax,2) を使用します。この構文は、App Designer で作成されたアプリ、および関数 uifigure を使用して作成されたアプリで使用します。 (R2023a 以降)

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

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

入力引数

すべて展開する

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

  • 'on' — ズーム モードを有効にします。

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

  • 'reset' — 現在のズーム レベルを基本のズーム レベルとして設定します。基本のズーム レベルを設定すると、zoom out の呼び出し、座標軸内でのダブルクリック、または座標軸ツール バーの [表示の復元] アイコンのクリックにより、座標軸がこのズーム レベルに戻ります。

  • 'out' — 現在の座標軸を基本のズーム レベルに戻します。

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

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

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

ズーム倍率。正の数値として指定します。factor を 1 より大きい数値として指定するとズームインします。factor を 0 と 1 の間の数値として指定するとズームアウトします。この場合、座標軸は 1/factor の倍率でズームアウトします。

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

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

プロパティ

すべて展開する

ズームイン/アウトが可能な次元。次の値のいずれかとして指定します。

  • 'both'x 次元および y 次元でのズームが可能。

  • 'horizontal'x 次元でのみズームが可能。

  • 'vertical'y 次元でのみズームが可能。

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

ズームの方向。次の値の 1 つとして指定します。

  • 'in' — クリックするとズームインします。

  • 'out' — クリックするとズームアウトします。

ズーム モードが有効になっている場合、Direction の値に関係なく、スクロール ホイールを使用してズームインまたはズームアウトができます。

右クリック時に実行するアクション。次の値の 1 つとして指定します。

  • 'PostContextMenu' — コンテキスト メニューを表示します。

  • 'InverseZoom' — 右クリックするとズームアウトします。

RightClickAction プロパティを設定すると、以降の zoom オブジェクトの既定値が設定されます。RightClickAction の値は MATLAB® セッション間で保持されます。

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

このプロパティは、RightClickAction プロパティの値が 'InverseZoom' になっている場合には無効です。

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

  • 関数ハンドル

  • 関数ハンドルと追加の引数を含む 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 オブジェクト) を含む構造体。この引数をコールバック関数で使用しない場合は、チルダ文字 (~) に置き換えます。

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

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

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

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

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

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

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

オブジェクト関数

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

setAllowAxesZoom

関数 setAllowAxesZoom は座標軸をズームする権限を設定します。

zoom オブジェクト z に対して、axes オブジェクトのベクトル axes と logical スカラー tf を入力として setAllowAxesZoom(z,axes,tf) を呼び出すと、その axes オブジェクトでのズーム操作を有効または無効にすることができます。

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

isAllowAxesZoom

関数 isAllowAxesZoom は座標軸をズームする権限をクエリします。

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

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

setAxesZoomConstraint

関数 setAxesZoomConstraint は、座標軸のズーム次元を設定します。

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

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

getAxesZoomConstraint

関数 getAxesZoomConstraint は、座標軸のズーム次元を返します。

zoom オブジェクト z に対して、axes オブジェクトのベクトル axes を入力として d = getAxesZoomConstraint(z,axes) を呼び出すと、各 axes オブジェクトのズーム次元を示す cell 配列 d が返されます。

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

setAxes3DPanAndZoomStyle

関数 setAxes3DPanAndZoomStyle は、ズーム スタイルを設定します。

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

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

getAxes3DPanAndZoomStyle

関数 getAxes3DPanAndZoomStyle は、ズーム スタイルを返します。

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

setAxesZoomMotion (非推奨)

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

zoom オブジェクト z に対して、axes オブジェクトのベクトル axes とズーム次元 d を入力として setAxesZoomMotion(z,axes,d) を呼び出すと、その axes オブジェクトのズーム次元が 'horizontal''vertical'、または 'both' のいずれかの次元値として設定されます。

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

getAxesZoomMotion (非推奨)

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

zoom オブジェクト z に対して、axes オブジェクトのベクトル axes を入力として d = getAxesZoomMotion(z,axes) を呼び出すと、各 axes オブジェクトのズーム次元を示す cell 配列 d が返されます。

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

すべて折りたたむ

表面をプロットし、ズーム モードを有効にします。

surf(peaks)
zoom on

A surface with several peaks

最も高いピークをクリックしてそこにズームインします。ここで基本のズーム レベルを設定します。以降の zoom out の呼び出しでは、座標軸をダブルクリックするか、座標軸ツール バーの [表示の復元] アイコンをクリックすると、座標軸が基本のズーム レベルに戻ります。

zoom reset

The surface zoomed into the tallest peak

最も高いピークをクリックして、再度これにズームインします。その後、ズームアウトして、設定した基本のズーム レベルに戻ります。

zoom out

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

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

ax2 = nexttile;
plot(rand(3));
setAllowAxesZoom(z,ax2,false);

ax3 = nexttile;
surf(peaks);
setAxesZoomConstraint(z,ax3,'xy');

ax4 = nexttile;
contour(peaks);
setAxesZoomMotion(z,ax4,'horizontal');

表面をプロットし、関数 uicontextmenu を使用してコンテキスト メニューを作成します。

surf(peaks)
cm = uicontextmenu;

A surface with several peaks

そのメニューに項目を追加します。ラベルと Figure を閉じるコールバックを指定します。

m = uimenu(cm);
m.Label = 'Close figure';
f = gcf;
m.Callback = @(src,event)close(f);

zoom オブジェクトを作成します。zoom オブジェクトの ContextMenu プロパティを設定してコンテキスト メニューを追加します。その後、ズーム モードを有効にします。

z = zoom(f);
z.ContextMenu = cm;
z.Enable = 'on';

右クリックし、[Figure を閉じる] を選択して Figure を閉じます。

詳細

すべて展開する

代替機能

座標軸ツール バー

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

バージョン履歴

R2006a より前に導入

すべて展開する