ドキュメンテーション

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

複数のプロットの結合

プロットはいくつかの方法で結合できます。プロットを同じ座標軸で結合するか、サブプロットを使用して Figure に複数の座標軸を作成します。

同一座標軸にプロットを結合

既定では、新しいプロットは既存のプロットをクリアし、タイトルなどの座標軸のプロパティをリセットします。ただし、hold on コマンドを使用することで、複数のプロットを同じ座標軸で結合できます。たとえば、2 つのラインと散布図をプロットします。次に、ホールド状態をオフにリセットします。

x = linspace(0,10,50);
y1 = sin(x);
plot(x,y1)
title('Combine Plots')

hold on

y2 = sin(x/2);
plot(x,y2)

y3 = 2*sin(x);
scatter(x,y3) 

hold off

ホールド状態がオンの場合、新しいプロットが、既存のプロットをクリアしたり、タイトルや軸ラベルなどの座標軸のプロパティをリセットすることはありません。このプロットは座標軸の ColorOrder プロパティと LineStyleOrder プロパティに基づき色とライン スタイルを繰り返します。新しいデータに合わせて座標軸の範囲と目盛り値を調整できます。

サブプロットを使用して Figure に複数の座標軸を作成

Figure をサブプロットのグリッドに分割する関数 subplot を使用して 1 つの Figure に複数の座標軸を作成します。subplot の最初の 2 つの入力は、各行と各列におけるサブプロットの数を示します。3 番目の入力は、どのサブプロットがアクティブであるかを指定します。MATLAB によって、行ごとにサブプロットに番号が付けられます。plot および title などのグラフィックス関数は、アクティブなサブプロットをターゲットにします。

たとえば、Figure ウィンドウ内の 2 行 1 列のグリッドで上下に並べたサブプロットを作成します。各サブプロットにタイトルを追加します。

subplot(2,1,1);
x = linspace(0,10,50);
y1 = sin(x);
plot(x,y1)
title('Subplot 1')

subplot(2,1,2);
y2 = rand(50,1);
scatter(x,y2)
title('Subplot 2')

複数のグリッド位置にわたるサブプロットの作成

複数のグリッド位置にまたがるサブプロットを作成するには、関数 subplot の 3 番目の入力引数を位置の配列として指定します。たとえば、サブプロットの 2 行 2 列のグリッドを作成します。Figure の上半分に 2 つのサブプロットを作成し、下半分全体わたる 1 つのサブプロットを作成します。

figure
subplot(2,2,1);
x = linspace(0,10,50);
y1 = sin(x);
plot(x,y1)

subplot(2,2,2);
y2 = rand(50,1);
scatter(x,y2)

subplot(2,2,[3 4]);
y3 = rand(50,1);
plot(x,y2)

サブプロットの外観の変更

サブプロットの外観を変更するには、基になる Axes オブジェクトのプロパティを設定します。関数 subplot の出力引数を使用して Axes オブジェクトにアクセスします。また、Axes オブジェクトをグラフィックス関数の最初の入力引数として使用し、関数が正しい座標軸を必ずターゲットにするようにできます。

たとえば、2 つのサブプロットを作成し、Axes オブジェクトを変数 ax1 および ax2 に代入します。最初のサブプロットの座標軸のフォント サイズと x 軸の色を変更します。2 番目のサブプロットにグリッド ラインを追加します。

figure
ax1 = subplot(2,1,1);
x = linspace(0,10,50);
y1 = sin(x);
plot(ax1,x,y1)
title(ax1,'Subplot 1')
ax1.FontSize = 14;
ax1.XColor = 'red';

ax2 = subplot(2,1,2);
y2 = rand(50,1);
scatter(ax2,x,y2)
title(ax2,'Subplot 2')
grid(ax2,'on')

サブプロットのグリッドに上位タイトルを追加

サブプロットのある Figure を作成するとき、すべてのサブプロットに適用されるタイトルを追加したい場合があります。R2018b 以降、関数 sgtitle を使用して、サブプロットのグリッドにタイトルを追加できます。

subplot(2,1,1);
x = linspace(0,10,50);
y1 = sin(x);
plot(x,y1)
title('Subplot 1')

subplot(2,1,2);
y2 = rand(50,1);
scatter(x,y2)
title('Subplot 2')

sgtitle('My Subplot Grid Title')

参考

関数

関連するトピック