最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。
App Designer でグラフィックスを表示するには、MATLAB® コマンド ラインで通常使用するのとは異なるワークフローが必要です。このワークフローといくつかの特殊なケースを理解すれば、ほぼすべての種類のプロットを表示するために必要な関数の呼び出し方法がわかります。
MATLAB (および MATLAB ツールボックス) のグラフィックス関数の多くには、ターゲット座標軸または親オブジェクトを指定するための引数があります。この引数はほとんどのコンテキストで省略可能ですが、App Designer でこれらの関数を呼び出す場合は、その引数を指定しなければなりません。その理由は、多くの場合、MATLAB は既定で関数 gcf
または関数 gca
を使用して演算のターゲット オブジェクトを取得するためです。ただし、App Designer の Figure の HandleVisibility
プロパティは既定で 'off'
に設定されます。つまり、gcf
は App Designer の Figure を返さず、gca
は App Designer の Figure 内に座標軸を返しません。そのため、ターゲットの座標軸または親オブジェクトの引数を省略すると、予期しない結果が発生する可能性があります。
次のコードは、2 行をプロットするときにターゲット座標軸を指定する方法を示しています。plot
と hold
に渡される最初の引数は app.UIAxes
で、これは App Designer の座標軸の既定の名前です。
plot(app.UIAxes,[1 2 3 4],'-r'); hold(app.UIAxes); plot(app.UIAxes,[10 9 4 7],'--b');
一部の関数 (imshow
、triplot
など) では、ターゲット オブジェクトを指定する名前と値のペアの引数を使用します。たとえば、次のコードは、App Designer で関数 imshow
を呼び出す方法を示しています。
imshow('peppers.png','Parent',app.UIAxes);
ほとんどの 2 次元および 3 次元プロットは、App Designer の座標軸 (uiaxes
オブジェクト) を使用して作成できます。R2018b より、次の表に示されている追加のプロットを作成できます。これらのプロットのほとんどには、別の種類の親オブジェクトと、アプリ内でのコード行の追加が必要です。これらはすべて、既定で正規化された位置の単位を使用します。
関数 | コーディングの詳細 |
---|---|
polarplot polarhistogram polarscatter compass | 関数
theta = 0:0.01:2*pi; rho = sin(2*theta).*cos(2*theta); pax = polaraxes(app.Panel); polarplot(pax,theta,rho) あるいは、類似の方法でコンパス プロットを作成します。 rng(0,'twister')
M = randn(20,20);
Z = eig(M);
app.Axes = axes(app.Panel);
compass(app.Axes,Z) |
subplot | 次の手順に従います。
以下に例を示します。 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]) |
tiledlayout | パネル内にチャートのタイル レイアウトを作成し、関数 t = tiledlayout(app.Panel,2,1); [X,Y,Z] = peaks(20) % Tile 1 ax1 = nexttile(t); surf(ax1,X,Y,Z) % Tile 2 ax2 = nexttile(t); contour(ax2,X,Y,Z) |
pareto plotmatrix | 次の手順に従います。
以下に例を示します。 app.UIFigure.AutoResizeChildren = 'off';
ax = axes(app.UIFigure);
pareto(ax,[10 20 40 40]) |
geobubble heatmap parallelplot scatterhistogram stackedplot wordcloud | これらの関数を呼び出すときには (たとえば、 以下に例を示します。 h = heatmap(app.UIFigure,rand(10)); |
geoplot geoscatter geodensityplot | 関数
latSeattle = 47 + 37/60; lonSeattle = -(122 + 20/60); gx = geoaxes(app.UIFigure); geoplot(gx,latSeattle,lonSeattle) |
R2020a 以降、関数 annotation
で作成された注釈は App Designer の Figure でサポートされます。注釈を作成するには、UI Figure を最初の入力引数として指定して、関数 annotation
を呼び出します。以下に例を示します。
x = [0.3 0.5];
y = [0.6 0.5];
annotation(app.UIFigure,'arrow',x,y)
R2020a 現在、一部のグラフィックス機能は App Designer でサポートされていません。次の表に、ほとんどのアプリ作成ワークフローに関連する機能を示します。
カテゴリ | サポートなし |
---|---|
アニメーション | |
データの取得と保存 | 関数
|
ユーティリティ | 関数 |
非推奨の関数 | |
グリッド レイアウト マネージャーまたはスクロール可能コンテナーの座標軸 | 回避方法:
|
プロパティ |
|
UI Figure のプロパティ | UIAxes のプロパティ