チャートの対話機能の制御
プロットされたデータを対話的に確認および編集して、データの視覚的な表示を改善したり、データに関するその他の情報を明らかにすることができます。使用できる操作は座標軸の内容によって異なりますが、通常は、ズーム、パン、回転、データ ヒント、データのブラシ選択、元の表示の復元などがあります。
一部のタイプの操作は、座標軸ツール バーでのみ使用できます。ツール バーは、チャート領域にカーソルを置くと座標軸の右上隅に表示されます。
他のタイプの操作は座標軸に組み込まれており、ドラッグしてパン、スクロールしてズームなどの動作を介して使用できます。これらの操作は、座標軸ツール バーの操作とは別に制御されます。
チャートを作成するときは、使用可能な操作のセットをいくつかの方法で制御できます。
R2018a およびそれ以前のリリースでは、座標軸ツール バーの代わりに、Figure ツール バーに操作オプションの多くが表示されます。また、以前のリリースでは、操作はいずれも座標軸に組み込まれていません。
座標軸ツール バーの表示または非表示
座標軸ツール バーを表示または非表示にするには、AxesToolbar
オブジェクトの Visible
プロパティをそれぞれ 'on'
または 'off'
に設定します。たとえば、現在の座標軸のツール バーを非表示にします。
ax = gca;
ax.Toolbar.Visible = 'off';
座標軸ツール バーのカスタマイズ
関数 axtoolbar
および axtoolbarbtn
を使用して、座標軸ツール バーで使用できるオプションをカスタマイズできます。
たとえば、座標軸のグリッド ラインの表示と非表示を切り替えるカスタムの状態ボタンを座標軸ツール バーに追加します。まず、mycustomstatebutton.m
というプログラム ファイルを作成します。プログラム ファイル内で次を行います。
乱数データをプロットします。
関数
axtoolbar
を使用して、ズームイン、ズームアウト、表示の復元の各オプションをもつ座標軸ツール バーを作成します。関数
axtoolbarbtn
を使用して、ツール バーに空の状態ボタンを追加します。ToolbarStateButton
オブジェクトを返します。Icon
、Tooltip
、ValueChangedFcn
の各プロパティを設定して、状態ボタンのアイコン、ツール ヒントおよびコールバック関数を指定します。この例では アイコンを使用します。まず、これをmygridicon.png
というイメージ ファイルとしてパス上に保存しなければなりません。
プログラム ファイルの実行後、アイコンをクリックしてグリッドラインの表示と非表示を切り替えます。
function mycustomstatebutton plot(rand(5)) ax = gca; tb = axtoolbar(ax,{'zoomin','zoomout','restoreview'}); btn = axtoolbarbtn(tb,'state'); btn.Icon = 'mygridicon.png'; btn.Tooltip = 'Grid Lines'; btn.ValueChangedFcn = @customcallback; function customcallback(src,event) switch src.Value case 'off' event.Axes.XGrid = 'off'; event.Axes.YGrid = 'off'; event.Axes.ZGrid = 'off'; case 'on' event.Axes.XGrid = 'on'; event.Axes.YGrid = 'on'; event.Axes.ZGrid = 'on'; end end end
組み込み操作の有効化または無効化
組み込み操作のセットをチャート内で有効にするかどうかを制御するには、関数 disableDefaultInteractivity
および関数 enableDefaultInteractivity
を使用します。MATLAB® では、組み込み操作を自動的に無効にする場合があります。たとえば、特殊な機能をもつチャートの場合や、WindowScrollWheelFcn
コールバックなど特定のコールバックを実装する場合に無効にされることがあります。
組み込み操作のカスタマイズ
ほとんどのタイプの座標軸に、特定の動作に対応する組み込み操作の既定のセットが含まれています。使用可能な操作は、座標軸の内容によって異なります。ほとんどの直交座標軸には、スクロールしてズーム、カーソルを合わせるかクリックしてデータ ヒントを表示、ドラッグしてパン (2 次元表示) または回転 (3 次元表示) の各操作が含まれています。既定のセットを新しい操作セットに置き換えることはできますが、既定のセットの操作にアクセスしたり、変更したりすることはできません。
既定の操作を置き換えるには、座標軸の Interactions
プロパティを操作オブジェクトの配列に設定します。操作オブジェクトの互換性のある組み合わせを、以下の表から選択します。すべての操作を座標軸から削除するには、プロパティを空の配列 ([]
) に設定します。
操作オブジェクト | 説明 | 互換性のある操作 |
---|---|---|
panInteraction | ドラッグによるチャート内のパン。 | regionZoomInteraction および rotateInteraction を除くすべて |
rulerPanInteraction | ドラッグによる座標軸のパン。 | すべて |
zoomInteraction | スクロールまたはピンチ操作によるズーム。 | すべて |
regionZoomInteraction | ドラッグによる四角形領域の拡大 (2 次元直交チャートのみ) | panInteraction および rotateInteraction を除くすべて |
rotateInteraction | ドラッグによるチャートの回転。 | panInteraction および regionZoomInteraction を除くすべて |
dataTipInteraction | カーソル配置、クリック、またはタップによるデータ ヒントの表示。 | すべて |
たとえば、1000 個の散布点を含むプロットを作成します。
x = 1:500; y = randn(1,500); y2 = 5*randn(1,500) + 10; plot(x,y,'.',x,y2,'.')
既定では、このプロットには、チャート領域内でのドラッグによるパンを含む操作セットが含まれています。しかし、プロットには稠密な点の集まりがあるため、操作セットにプロットの特定領域を拡大できる操作が含まれているほうが便利かもしれません。regionZoomInteraction
オブジェクトはこの機能を提供します。現在の座標軸の既定の操作セットを、regionZoomInteraction
オブジェクトを含む配列に置き換えます。
ax = gca; ax.Interactions = [zoomInteraction regionZoomInteraction rulerPanInteraction];
これで、プロット領域内でのドラッグによって、拡大対象となる四角形の関心領域が定義されます。
アプリの操作の動作のカスタマイズ
App Designer の座標軸および関数 uifigure
で作成した Figure の座標軸用に座標軸操作の特定の側面の動作をカスタマイズできます。座標軸の操作をカスタマイズするには、座標軸の InteractionOptions
プロパティに関連付けられた CartesianAxesInteractionOptions
オブジェクトのプロパティ値を変更します。
たとえば、関数 uifigure
を使用して作成された Figure の座標軸操作をカスタマイズします。座標軸のサポートされる操作を変更します。PanSupported
プロパティを "off"
として指定して、座標軸でパン操作がサポートされないようにします。
f = uifigure;
ax = uiaxes(f);
plot(ax,magic(4));
ax.InteractionOptions.PanSupported = "off";
座標軸のツール バーには、[パン] ボタン が含まれないようになりました。プロットをクリックしてドラッグしても、座標軸の表示はパンされません。
次に、ズーム操作を x 次元のみに制約します。
ax.InteractionOptions.LimitsDimensions = "x";
これで、LimitsDimensions
プロパティに関連するすべてのズーム操作は x 次元に制約されるようになりました。たとえば、座標軸のズーム モードを有効にします。
zoom(ax,"on")
CartesianAxesInteractionOptions
の LimitsDimensions
プロパティにより、ズームが x 次元に制約されます。座標軸にズームインした後に、座標軸の表示を復元します。表示を復元する前に、表示を復元するために既定の x 軸の制限をクエリします。
restoreX = ax.InteractionOptions.RestoredXLimits
restoreX =` 1 4
x 軸の復元の制限をカスタマイズします。
ax.InteractionOptions.RestoredXLimits = [2 3];
次に、座標軸ツール バーにある [表示の復元] ボタン をクリックします。x 軸の制限は [2 3]
です。
参考
関数
プロパティ
- AxesToolbar のプロパティ | ToolbarPushButton のプロパティ | ToolbarStateButton のプロパティ | Axes のプロパティ | CartesianAxesInteractionOptions Properties