ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

App Designer でのグラフィックスの表示

App Designer でグラフィックスを表示するには、MATLAB® コマンド ラインで通常使用するのとは異なるワークフローが必要です。このワークフローといくつかの特殊なケースを理解すれば、ほぼすべての種類のプロットを表示するために必要な関数の呼び出し方法がわかります。

グラフィックス関数の呼び出し

MATLAB (および MATLAB ツールボックス) のグラフィックス関数の多くには、ターゲット座標軸または親オブジェクトを指定するための引数があります。この引数はほとんどのコンテキストで省略可能ですが、App Designer でこれらの関数を呼び出す場合は、その引数を指定しなければなりません。そうでない場合、MATLAB で gcf または gca を使用して操作のターゲット オブジェクトを取得します。ただし、gcf は App Designer の Figure を返すことができず、gca は App Designer の Figure 内の任意の座標軸を返すことができません。したがって、引数を省略すると、予期しない結果が生じる場合があります。

次のコードは、2 行をプロットするときにターゲット座標軸を指定する方法を示しています。plothold に渡される最初の引数は app.UIAxes で、これは App Designer の座標軸の既定の名前です。

plot(app.UIAxes,[1 2 3 4],'-r');
hold(app.UIAxes);
plot(app.UIAxes,[10 9 4 7],'--b');

一部の関数 (imshowtriplot など) では、ターゲット オブジェクトを指定する名前と値のペアの引数を使用します。たとえば、次のコードは、App Designer で関数 imshow を呼び出す方法を示しています。

imshow('peppers.png','Parent',app.UIAxes);
関数に応じて、ターゲット オブジェクトを最初の引数として指定するか、名前と値のペアの引数を指定します。適切な引数を決定するには、特定の使用する関数のドキュメントを参照してください。

別の種類の座標軸を使用したプロットの表示

ほとんどの 2 次元および 3 次元プロットは、App Designer の座標軸 (uiaxes オブジェクト) を使用して作成できます。R2018b より、次の表に示されている追加のプロットを作成できます。これらのプロットのほとんどには、別の種類の親オブジェクトと、アプリ内でのコード行の追加が必要です。これらはすべて、既定で正規化された単位を使用します。

関数コーディングの詳細
polarplot
polarhistogram
polarscatter
compass

関数 polaraxes を呼び出して極座標軸を作成します。親コンテナーを最初の入力引数 (app.UIFigure など) として指定します。次に、極座標軸を最初の引数としてプロット関数を呼び出します。以下に例を示します。

theta = 0:0.01:2*pi;
rho = sin(2*theta).*cos(2*theta);
pax = polaraxes(app.UIFigure);
polarplot(pax,theta,rho)

subplot

次の手順に従います。

  1. AutoResizeChildren プロパティを 'off' に設定します。サブプロットでは、自動的なサイズ変更の動作がサポートされていません。このプロパティは、App Designer の [コンポーネント ブラウザー][インスペクター] タブで、またはコードで設定できます。

  2. subplot を呼び出すときには、'Parent' の名前と値のペア引数を使用して親コンテナーを指定します。また、座標軸を格納する出力引数を指定します。

  3. 座標軸を最初の入力引数としてプロット関数を呼び出します。

以下に例を示します。

app.UIFigure.AutoResizeChildren = 'off';
ax1 = subplot(1,2,1,'Parent',app.UIFigure);
ax2 = subplot(1,2,2,'Parent',app.UIFigure);
plot(ax1,[1 2 3 4])
plot(ax2,[10 9 4 7])

pareto
plotmatrix

次の手順に従います。

  1. AutoResizeChildren プロパティを 'off' に設定します。これらのプロットでは、自動的なサイズ変更の動作がサポートされていません。このプロパティは、App Designer の [コンポーネント ブラウザー][インスペクター] タブで、またはコードで設定できます。

  2. 関数 axes を呼び出して座標軸を作成します。親コンテナーを最初の入力引数 (app.UIFigure など) として指定します。

  3. 座標軸を最初の入力引数として pareto または plotmatrix を呼び出します。

以下に例を示します。

app.UIFigure.AutoResizeChildren = 'off';
ax = axes(app.UIFigure);
pareto(ax,[10 20 40 40])

geobubble
heatmap
parallelplot
scatterhistogram
stackedplot
wordcloud

これらの関数を呼び出すときには (たとえば、app.UIFigure)、親コンテナーを指定します。

以下に例を示します。

h = heatmap(app.UIFigure,rand(10));

geoplot
geoscatter
geodensityplot

関数 geoaxes を呼び出して、地理座標軸を作成します。親コンテナーを最初の入力引数 (app.UIFigure など) として指定します。次に、座標軸を最初の引数としてプロット関数を呼び出します。以下に例を示します。

latSeattle = 47 + 37/60;
lonSeattle = -(122 + 20/60);
gx = geoaxes(app.UIFigure);
geoplot(gx,latSeattle,lonSeattle)

サポートされない関数

R2019a 現在、一部のグラフィックス機能は App Designer でサポートされていません。次の表に、ほとんどのアプリ作成ワークフローに関連する機能を示します。

カテゴリサポートなし
アニメーション
注釈
  • 関数 annotation を使って作成された注釈。

データの取得と保存

uifigure を使ってプログラムにより作成された Figure では、関数 saveloadsavefig、および openfig がサポートされます。

ユーティリティ
非推奨の関数
  • たとえば ezplot および hist などです。

グリッド レイアウト マネージャーまたはスクロール可能コンテナーの座標軸
  • グリッド レイアウト マネージャーおよびスクロール可能コンテナーでは、axespolaraxesgeoaxes や、Figure の子となり得るチャート (heatmapgeobubblestackedplot など) はサポートされません。

  • uiaxes にこれらの制限はありません。

回避方法:

  • グリッド レイアウト マネージャーの制限を回避するには、座標軸またはチャートをパネルに配置します。次に、そのパネルをグリッドに配置します。

  • スクロール可能コンテナーの制限を回避するには、Scrollable プロパティが 'off' に設定されているパネルに座標軸またはチャートを配置します。次に、パネルをスクロール可能コンテナーに配置します。

コンポーネント
  • uicontroluitoolbar、および uicontextmenu は、App Designer ではサポートされていません。ただし、App Designer は、タブ、ツリー、スイッチおよびゲージを含む一連の新しいコンポーネントをサポートします。サポートされているコンポーネントの完全なリストについては、App Designer でのアプリの設計を参照してください。

プロパティ
  • 一部のコンポーネントのプロパティは、App Designer ではサポートされていません。特定のコンポーネントでサポートされるプロパティのリストについては、App Designer でのアプリの設計でコンポーネントのプロパティのページを参照してください。

参考

|

関連するトピック