Main Content

table をサポートするプロット

多くのプロット関数では、table のデータを直接プロットできます。table を関数に最初の引数として渡し、続けてプロットする変数を渡します。table または timetable のいずれかを指定でき、多くの場合、同じ座標軸に複数のデータ セットをまとめてプロットできます。

以下の例では、関数 plot および scatter を使用して、table のデータをプロットする全体的なアプローチを示します。特定のプロット関数が table をサポートしているかどうかを確認するには、その関数のドキュメントを参照してください。

簡単なライン プロットの作成

3 つの変数を含む table を作成します。その table を関数 plot に最初の引数として渡し、続けてプロットする変数の名前を渡します。ここでは、"x" 軸に変数 Input"y" 軸に変数 Output1 をプロットします。軸ラベルが変数名と一致していることに注意してください。

% Create a table
Input = linspace(0,12)';
Output1 = sin(Input);
Output2 = sin(Input/3);
tbl = table(Input,Output1,Output2);

% Plot the table variables
plot(tbl,"Input","Output1")

Figure contains an axes object. The axes object with xlabel Input, ylabel Output1 contains an object of type line.

複数のデータ セットをまとめてプロットするには、"x" 座標、"y" 座標、またはその両方について、table 変数名の string ベクトルを指定します。たとえば、変数 Output1Output2"y" 軸に一緒にプロットします。

"y" 座標は 2 つの異なる table 変数から取得されるため、"y" 軸ラベルについては内容が明確でなく、この軸ラベルは空白のままになります。ただし、凡例を追加すると、凡例の項目が対応する変数名に一致します。

plot(tbl,"Input",["Output1","Output2"])
legend

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

ライン プロットのカスタマイズ

table を使用してプロットした後にラインの外観をカスタマイズするには、LineStyle プロパティと Color プロパティを設定します。たとえば、timetable として weather.csv を読み取り、変数 Temperature を行時間に対してプロットします。Line オブジェクトを p として返すため、後でそのプロパティを設定できます。

メモ: このコードでは "x" 座標の変数を省略しています。"x" 座標を省略すると、"y" 座標が行インデックス (table の場合) または行時間 (timetable の場合) に対してプロットされます。

tbl = readtimetable("weather.csv");
p = plot(tbl,"Temperature");

ラインのスタイルを破線に変更し、色を紫の色調に変更します。

p.LineStyle = "--";
p.Color = [0.5 0 1];

Figure contains an axes object. The axes object with xlabel Time, ylabel Temperature contains an object of type line.

散布図のカスタマイズ

table を使用してプロットした後、プロパティを設定して散布図のマーカーの外観をカスタマイズできます。たとえば、table として patients.xls を読み取り、塗りつぶされたマーカーを使用して変数 Diastolic を変数 Systolic に対してプロットします。Scatter オブジェクトを s として返すため、後でそのプロパティを設定できます。

tbl = readtable("patients.xls");
s = scatter(tbl,"Systolic","Diastolic","filled");

マーカー記号を四角形に変更し、マーカーを薄い青の色調で塗りつぶし、マーカー サイズを 80 に変更します。

s.Marker = "sq";
s.MarkerFaceColor = [0.5 0.7 1];
s.SizeData = 80;

Figure contains an axes object. The axes object with xlabel Systolic, ylabel Diastolic contains an object of type scatter.

マーカーの色と透明度を table 変数に従って変えることもできます。たとえば、MarkerFaceColor プロパティを "flat" に設定して ColorVariable プロパティを "Age" に設定し、変数 Age に従って色を変えます。

MarkerFaceAlpha プロパティを "flat" に設定して AlphaVariable プロパティを "Weight" に設定し、変数 Weight に従って色を変えます。

% Vary the colors
s.MarkerFaceColor = "flat";
s.ColorVariable = "Age";

% Vary the transparency
s.MarkerFaceAlpha = "flat";
s.AlphaVariable = "Weight";

Figure contains an axes object. The axes object with xlabel Systolic, ylabel Diastolic contains an object of type scatter.

table の変更によるプロットの更新

プロット関数に table を渡すと、table のコピーがプロット オブジェクトの SourceTable プロパティに格納されます。そのプロパティに格納されている table の内容を変更すると、プロットが自動的に更新されて変更が反映されます。(ただし、ワークスペースで table に変更を加えた場合、それらの変更はプロットに反映されません。)

たとえば、table として patients.xls を読み取り、変数 Weight を変数 Height に対してプロットします。Scatter オブジェクトを s として返すため、後でそのプロパティにアクセスできます。

tbl = readtable("patients.xls");
s = scatter(tbl,"Height","Weight","filled");

Figure contains an axes object. The axes object with xlabel Height, ylabel Weight contains an object of type scatter.

table の値を変更するには、ドット表記を使用して Scatter オブジェクトの SourceTable プロパティの table を参照します。ここでは、変数 Weight の最大値を調べ、その値を 300 に変更します。プロットは自動的に更新されます。

[~,idx] = max(s.SourceTable.Weight);
s.SourceTable.Weight(idx) = 300;

Figure contains an axes object. The axes object with xlabel Height, ylabel Weight contains an object of type scatter.

table データとベクトル データの組み合わせ

table をサポートするプロットの多くでは、プロットの一部の特性を table 変数を使用して指定し、他の特性をベクトルまたは行列を使用して指定できます。たとえば、table の座標を使用して散布図を作成し、CData プロパティをベクトル、RGB 3 成分、または RGB 3 成分の行列に設定してマーカーの色をカスタマイズできます。

たとえば、table のデータを使用して散布図を作成します。table として patients.xls を読み取り、変数 Weight を変数 Height に対してプロットします。

tbl = readtable("patients.xls");
s = scatter(tbl,"Height","Weight","filled");

Figure contains an axes object. The axes object with xlabel Height, ylabel Weight contains an object of type scatter.

次に、プロットされた点の色をベクトルを使用して変更します。このように異なるソースのデータを組み合わせる場合、それぞれのベクトル、行列、table 変数のサイズは、作成するプロットと適合していなければなりません。ここでは、table の収縮期の値を拡張期の値で除算して bpratio というベクトルを作成します。bpratio は変数 Height および Weight と同じ table から派生するため、要素の数がそれらの変数と同じであり、このプロットと適合します。

CData プロパティを bpratio に設定して、それぞれの点に血圧比に従って色を付けます。さらに、カラー バーを追加します。

% Vary the color by blood pressure ratio
bpratio = tbl.Systolic./tbl.Diastolic;
s.CData = bpratio;

% Add a colorbar
colorbar

Figure contains an axes object. The axes object with xlabel Height, ylabel Weight contains an object of type scatter.

ベクトルまたは行列をプロットしてから、table 変数を使用してプロットを変更することもできます。プロットを作成した後、SourceTable プロパティを設定し、table 関連の目的のプロパティを設定します。通常、table 関連のプロパティには、名前に Variable という語が含まれています。たとえば、100 個の乱数から成る 2 つのベクトルをプロットします。

x = rand(100,1);
y = rand(100,1);
s = scatter(x,y,"filled");

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

マーカーの色が table 変数の値に従って変わるように変更します。table tbl として patients.xls を読み取ります。SourceTable プロパティを設定し、table の変数 Age に従ってマーカーの色を変えます。table の行の数が 100 で、プロットの点の数も 100 であるため、変数 Age はプロットと適合します。さらに、プロットにカラー バーを追加します。

% Set source table and vary color by age
s.SourceTable = tbl;
s.ColorVariable = "Age";

% Add a colorbar
colorbar

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

メモ: heatmap などのスタンドアロンの可視化では、table データとベクトル データの組み合わせはサポートされません。

参考

関数

プロパティ

関連するトピック