Main Content

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

zoom

ズーム モードの有効化

説明

ズーム モードを使用して、座標軸の範囲を変更してデータを探索できます。R2018b 以前のリリースでは、ズーム モードを使用して座標軸へのズーム インやズーム アウトを行います。関数 zoom を使用して、ズーム モードのオン/オフや、他の基本オプションの設定を行います。ズーム モードの動作をさらに制御するには、zoom オブジェクトを返して使用します。

R2018b 以降、ズーム イン/アウトは代わりに組み込み操作を使用して行うことができます。組み込み操作ではモードを有効にする必要がなく、操作モードよりも応答が高速です。組み込み操作の詳細については、チャートの対話機能の制御を参照してください。

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

作成

説明

zoom option は、現在の Figure ですべての座標軸についてズーム モードを有効または無効にします。たとえば、zoom on はズーム モードを有効に、zoom xon はズーム モードを x 次元についてのみ有効に、zoom off はズーム モードを無効にします。ズーム モードのオプションの詳細については option を参照してください。

ズーム モードがオンのときにズーム インするには、カーソルを座標軸の中心にする場所に置いて、上スクロールまたはクリックします。ズーム アウトするには、下スクロールするか、Shift キーを押しながらクリックします。1 回のクリックで 2 倍に拡大または縮小されます。四角形の領域にズーム インするには、クリックしてドラッグします。axes オブジェクトを基本のズーム レベルに戻すには、座標軸内でダブルクリックします。

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

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

zoom(fig,___) は、指定された Figure 内のすべての座標軸について、ズーム モードを設定します。追加の引数を 'on''off''out''reset''xon''yon'、または倍率として指定します。たとえば、zoom(fig,'on') を使用して Figure fig についてズーム モードを有効にします。

z = zoom は現在の Figure について zoom オブジェクトを作成します。この構文は、ズーム モード、動作、方向を制御するのに便利です。

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

入力引数

すべて展開する

ターゲット Figure。Figure オブジェクトとして指定します。

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

  • 'on' – ズーム モードをオンにします。

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

  • 'reset' – 現在のズーム レベルを基本のズーム レベルとして設定します。基本のズーム レベルを設定すると、zoom out の呼び出し、ダブルクリック、または axes ツール バーからの の選択は、座標軸をこのズーム レベルに戻します。

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

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

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

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

プロパティ

すべて展開する

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

  • 'both'x 次元と y 次元の両方でズームが可能。

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

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

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

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

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

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

ズーム モードがオンのとき、Direction の値に関係なく、いつでもスクロール ホイールを使用してズームイン/アウトができます。

ズーム モード。'off' または 'on' として指定します。

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

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

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

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

  • 'InverseZoom' – 右クリック時にズーム アウトします。

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

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

  • 関数ハンドル

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

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

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

  • figure — ズームを実行している Figure オブジェクト。

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

コールバックの詳細については、コールバック定義を参照してください。

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

  • 関数ハンドル

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

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

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

  • figure — ズームを実行している Figure オブジェクト。

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

コールバックの詳細については、コールバック定義を参照してください。

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

  • 関数ハンドル

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

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

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

  • axes — ズームを実行している axes オブジェクト。

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

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

コールバックの詳細については、コールバック定義を参照してください。

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

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

レガシ モード。'on' または 'off' もしくは数値または logical 1 (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 のズーム オブジェクトにのみ適用されます。

オブジェクト関数

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

setAllowAxesZoom

setAllowAxesZoom(z,ax,tf) はベクトル ax の axes オブジェクトのズーム モードをベクトル tf の logical 値に従って設定します。ax のサイズと tf のサイズは一致していなければなりません。

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

isAllowAxesZoom

tf = isAllowAxesZoom(z,ax) は axes オブジェクトのズーム モードを logical ベクトル tf としてベクトル ax 内で返します。tf のサイズは ax と同じです。

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

setAxesZoomConstraint

setAxesZoomConstraint(z,ax,d) は、スカラーの axes オブジェクト ax のズーム次元を、次元の値 d に従って設定します。次元は、'x''y''z''xy''xz''yz'、または 'unconstrained' のいずれかの値として指定します。たとえば、setAxesZoomConstraint(z,ax,'xy') によって、x 次元と y 次元についてのみズームが可能になります。

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

getAxesZoomConstraint

d = getAxesZoomConstraint(z,ax) はスカラーの axes オブジェクト ax のズーム次元 d を、'x''y''z''xy''xz''yz'、または 'unconstrained' として返します。

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

setAxes3DPanAndZoomStyle

setAxes3DPanAndZoomStyle(z,ax,s) はベクトル ax で axes オブジェクトのズーム スタイル s を設定します。既定では、ズーム スタイルは 'limits' (座標軸の範囲を変更してズーム) です。ズーム スタイルを 'camera' として指定すると、カメラの視点角度を変更してズームします。たとえば、setAxes3DPanAndZoomStyle(z,ax,'camera') を使用します。

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

getAxes3DPanAndZoomStyle

s = getAxes3DPanAndZoomStyle(z,ax) は、axes オブジェクトのズーム スタイルを、ベクトル ax で文字 cell 配列 s として返します。s の要素は 'limits' または 'camera' として返されます。

setAxesZoomMotion (非推奨)

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

setAxesZoomMotion(z,ax,d) は axes オブジェクトのズーム次元 d をベクトル ax に設定します。ズーム次元を 'horizontal''vertical'、または 'both' として指定します。

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

getAxesZoomMotion (非推奨)

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

d = getAxesZoomMotion(z,ax) は axes オブジェクトのズーム次元を、ベクトル ax に文字 cell 配列 d として返します。d の要素は 'horizontal''vertical'、または 'both' として返されます。

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

すべて折りたたむ

データをプロットし、ズーム インし、基本のズーム レベルを設定します。以降の zoom out の呼び出しでは、axes が設定した基本のズームレベルに戻されます。

たとえば、事前定義された表面の座標を取得し、プロットします。ズーム モードをオンにします。

[X,Y,Z] = peaks(20);
surf(X,Y,Z)
zoom on

A surface with several peaks

最も高いピークをクリックしてそこにズーム インします。ここで基本のズーム レベルを設定します。

zoom reset

The surface zoomed into the tallest peak

最も高いピークに 2 回目にズーム インし、zoom out を呼び出します。

zoom out
axes は、設定した基本のズーム レベルに戻ります。

ズーム モードが有効になっている間に使用できるコンテキスト メニューを作成します。この例では、Figure を閉じることができるコンテキスト メニューを作成します。

まず、事前定義された表面の座標を取得し、プロットします。

[X,Y,Z] = peaks(20);
surf(X,Y,Z)

A surface with several peaks

関数 uicontextmenu を使用してコンテキスト メニューを作成します。そのメニューに項目を追加します。ラベルと Figure を閉じるコールバックを指定します。

cm = uicontextmenu;
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 を閉じます。

互換性についての考慮事項

すべて展開する

R2020a 以降は非推奨

R2006a より前に導入