メインコンテンツ

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

newplot

グラフィックス オブジェクトの描画位置の指定

説明

newplot は、新しいプロットが既存のプロットに追加されたり既存のプロットを置き換えたりすることを確実にすることで、現在の座標軸を新しいプロット用に準備します。newplot の動作は、座標軸とその親 Figure の両方の NextPlot プロパティに依存します。詳細については、アルゴリズムを参照してください。

座標軸が存在しない場合、newplot は、現在の Figure に新しい直交 axes オブジェクトを作成します。

単純な 2 次元プロットの場合、代わりに plot 関数を使用します。

newplot(ax) は、現在の座標軸ではなく、指定された座標軸 ax を更新します。グラフィックス コードの先頭でこの newplot 構文を使用することで、後続のプロット コマンドでターゲットにする座標軸と Figure を決定できます。

cax = newplot(___) は、Axes オブジェクトを返します。前述の構文のいずれかで出力引数を指定します。作成後に座標軸のプロパティのクエリや変更を行うには、cax を使用します。プロパティの一覧については、Axes のプロパティ を参照してください。

すべて折りたたむ

既定のプロットの座標軸を作成します。

newplot

Figure contains a Cartesian axes object.

Figure 内に 2 つの Axes オブジェクトを配置し、各 Axes オブジェクトにプロットを追加します。各プロット関数への最初の入力引数として座標軸を指定します。

tiledlayout('flow')
ax1 = nexttile;
ax2 = nexttile;

plot(ax1,peaks(20))
surf(ax2,peaks(20))

view([450 0])

Figure contains 2 axes objects. Axes object 1 contains 20 objects of type line. Axes object 2 contains an object of type surface.

既定では、ax2 には 'replace' という NextPlot プロパティがあります。この NextPlot プロパティを 'add' に変更します。

ax2.NextPlot
ans = 
'replace'
ax2.NextPlot = 'add';

座標軸の NextPlot プロパティ値が 'add' の場合、その座標軸にプロットしても座標軸のプロパティはリセットされず、また、座標軸から子オブジェクトが削除されません。既存の子オブジェクトとともに新しい値がプロットされます。

newplot(ax2)
surf(ax2,peaks(5)+10)

Figure contains 2 axes objects. Axes object 1 contains 20 objects of type line. Axes object 2 contains 2 objects of type surface.

2 つの Axes オブジェクトを作成し、1 つのオブジェクトにプロットを追加します。

tiledlayout("flow")
ax1 = nexttile;
ax2 = nexttile;

surf(ax1,peaks(20))

nexttile(1)
view([450 0])

Figure contains 2 axes objects. Axes object 1 contains an object of type surface. Axes object 2 is empty.

Axes オブジェクトを返し、オブジェクトのプロパティを設定して座標軸の外観をカスタマイズします。たとえば、ボックスの外枠とグリッド ラインを表示します。次に、座標軸の NextPlot プロパティを "add" に設定します。

curr = newplot(ax2);

curr.Box = "on";
curr.XGrid = "on";
curr.YGrid = "on";
curr.NextPlot = "add";

2 番目の Axes オブジェクトにプロットを追加します。

plot(curr,peaks(20))

Figure contains 2 axes objects. Axes object 1 contains an object of type surface. Axes object 2 contains 20 objects of type line.

ホールド状態がオンかオフかを考慮しながらデータをプロットする myPlot という名前の関数を作成します。この関数で、newplot を呼び出して現在の座標軸を新しいプロット用に準備し、座標軸が存在しない場合は作成します。

function myPlot(data)
ax = newplot;
line(ax,XData=1:numel(data),YData=data,Marker="o");
end

myPlot を使用して何らかのデータをプロットします。既存の座標軸が見つからない場合、myPlot 関数での newplot の呼び出しにより、新しい座標軸を作成します。

d = linspace(0,12,100);
myPlot(sin(d));

hold 状態をオンにし、myPlot を使用して別のデータ セットをプロットします。hold 関数が現在の座標軸の NextPlot プロパティを設定するため、この newplot の呼び出しによって、myPlot 関数が確実に既存のプロットに追加されます。

hold on
myPlot(cos(d));
hold off

Figure contains an axes object. The axes object contains 2 objects of type line.

次に、座標軸の内容を新しいプロットに置き換えます。hold がオフになっているため、myPlot は前の座標軸の内容を置き換えます。

myPlot(cos(d+pi));

Figure contains an axes object. The axes object contains an object of type line.

入力引数

すべて折りたたむ

変更する、または置き換える座標軸。AxesGeographicAxes、または PolarAxes オブジェクトとして指定します。

アルゴリズム

newplot 関数の動作は、Figure の NextPlot プロパティと座標軸の NextPlot プロパティの両方に依存します。

最初に、newplot 関数は Figure の NextPlot プロパティをクエリします。次の表は、newplot 関数が、NextPlot の値に基づいて Figure をどのように変更するかを示しています。

NextPlot プロパティの値 (Figure)

newplot の動作

"add" (既定)

  • Figure から子オブジェクトを削除しません。

  • Figure のプロパティをリセットしません。

"new"

  • 新しい Figure を作成します。

"replacechildren"

  • 非表示になっていないすべての子オブジェクト (つまり、HandleVisibility プロパティが "on" に設定されている子オブジェクト) を Figure から削除します。

  • Figure の NextPlot プロパティを "add" にリセットします。

この動作は、clf 関数を使用するのと同じです。

"replace"

  • 子オブジェクトが非表示であっても、Figure からすべての子オブジェクトを削除します。

  • PositionUnitsPaperPositionPaperUnits を除く、Figure のすべてのプロパティを既定値にリセットします。

  • ユーザー定義の既定値にかかわらず、Figure の NextPlot プロパティを "add" にリセットします。

この動作は、clf 関数の clf reset 構文を使用するのと同じです。

次に、newplot 関数は、Figure の座標軸の NextPlot プロパティをクエリします。次の表は、newplot 関数が、座標軸の NextPlot プロパティの値に基づいてその座標軸をどのように変更するかを示しています。

NextPlot プロパティの値 (座標軸)

newplot の動作

"replace" (既定)

  • 座標軸からすべての子オブジェクトを削除します。

  • PositionUnits を除く、座標軸のすべてのプロパティを既定値にリセットします。

この動作は、reset 引数を指定して cla 関数を呼び出すのと同じです。

"add"

  • 座標軸から子オブジェクトを削除しません。

  • 座標軸のプロパティをリセットしません。

"replacechildren"

  • 座標軸からすべての子オブジェクトを削除します。

  • 座標軸の NextSeriesIndex プロパティを 1 にリセットします。

この動作は、reset 引数を指定せずに cla 関数を呼び出すのと同じです。

"replaceall"

  • 座標軸からすべての子オブジェクトを削除します。

  • PositionUnits を除く、座標軸のすべてのプロパティを既定値にリセットします。

y 軸を 1 本のみもつ座標軸の場合、"replace""replaceall" の値は等しくなります。y 軸を 2 本もつ座標軸の場合、"replace" の値はアクティブな側にのみ影響しますが、"replaceall" の値は両側に影響します。

バージョン履歴

R2006a より前に導入