表形式データからのヒートマップの作成
ヒートマップとは、色を使ってデータを可視化する方法です。関数 heatmap を呼び出すときに、未集計のデータまたは事前集計済みのデータを指定できます。
未集計のデータを table 形式で指定すると、関数
heatmapはそのデータを集計し、各 cell に集計値を反映した数値と色を表示します。たとえば、cell には、("x", "y") の各ペアが table に出現する回数が表示される場合があります。"x" 軸と "y" 軸に沿ったラベルには、table の一意の値が表示されます。データを 2 次元行列形式で指定すると、関数
heatmapはその値を集計データとして扱います。行列の各要素はチャート内の cell に対応します。cell の色は、行列の値が行列の他の値と比較してどの程度大きいか、またはどの程度小さいかを示します。必要に応じて、チャートの "x" 軸と "y" 軸に沿って表示されるラベルを指定できます。
このトピックでは、ファイルを table として MATLAB® にインポートする方法と、table 列からヒートマップを作成する方法について説明します。また、タイトルや軸ラベルの設定など、ヒートマップの外観の変更方法を示します。
ファイルを table としてインポート
2015 年 1 月から 2016 年 7 月までの毎日の平均気温を含んだサンプル ファイル TemperatureData.csv を読み込みます。ファイルを table として読み取り、最初の 5 行を表示します。
tbl = readtable('TemperatureData.csv');
head(tbl,5) Year Month Day TemperatureF
____ ___________ ___ ____________
2015 {'January'} 1 23
2015 {'January'} 2 31
2015 {'January'} 3 25
2015 {'January'} 4 39
2015 {'January'} 5 29
基本的なヒートマップの作成
月を x 軸、年を y 軸に表示するヒートマップを作成します。温度のデータを使用してヒートマップ セルに色を付けるために、ColorVariable プロパティを設定します。HeatmapChart オブジェクトを変数 h に代入します。チャートを作成した後で変更を加えるには、h を使用します。
h = heatmap(tbl,'Month','Year','ColorVariable','TemperatureF');

MATLAB では既定で色データが各月の平均気温として計算されます。ただし、ColorMethod プロパティを設定して計算方法を変更することができます。
軸の値の並べ替え
軸の値は、アルファベット順に表示されます。時系列で表示されるように月を並べ替えます。ラベルは、categorical 配列を使用するか、HeatmapChart プロパティを設定してカスタマイズできます。
categorical 配列を使用するには、最初に table の Month 列のデータを cell 配列から categorical 配列に変更します。次に、関数 reordercats を使用してカテゴリを並べ替えます。これらの関数はワークスペースの table (tbl) または HeatmapChart オブジェクトの SourceTable プロパティに格納されている table (h.SourceTable) に適用できます。HeatmapChart オブジェクトに格納された table にそれらを適用することで、元のデータへの影響が回避されます。
h.SourceTable.Month = categorical(h.SourceTable.Month);
neworder = {'January','February','March','April','May','June','July',...
'August','September','October','November','December'};
h.SourceTable.Month = reordercats(h.SourceTable.Month,neworder);
同様に、categorical 配列用の関数 addcats、removecats、または renamecats を使用して、ヒートマップのラベルを追加、削除、または名前変更することができます。
あるいは、HeatmapChart オブジェクトの XDisplayData プロパティと YDisplayData プロパティを使用して、軸に沿って値を並べ替えることができます。
h.XDisplayData = {'January','February','March','April','May','June', ...
'July','August','September','October','November','December'};
タイトルと軸ラベルの変更
表形式のデータを使用してヒートマップを作成する場合、ヒートマップは自動的にタイトルと軸ラベルを生成します。タイトルと軸ラベルをカスタマイズするには、HeatmapChart オブジェクトの Title、XLabel、および YLabel プロパティを設定します。たとえば、タイトルを変更し、x 軸ラベルを削除します。フォント サイズも変更します。
h.Title = 'Average Temperatures'; h.XLabel = ''; h.FontSize = 12;

欠損データ セルの外観の変更
2016 年 8 月から 2016 年 12 月のデータがないため、それらのセルは欠損データとして表示されます。欠損データ セルの外観は、MissingDataColor プロパティおよび MissingDataLabel プロパティを使用して変更します。
h.MissingDataColor = [0.8 0.8 0.8];
h.MissingDataLabel = 'No Data';
カラー バーの削除
カラー バーを削除するには、ColorbarVisible プロパティを設定します。
h.ColorbarVisible = 'off';
セルのテキストの書式設定
各セルに表示されるテキストの書式をカスタマイズするには、CellLabelFormat プロパティを設定します。たとえば、テキストを小数点以下の値なしで表示します。
h.CellLabelFormat = '%.0f';
軸の値の追加または削除
XDisplayData プロパティを設定して各四半期の最初の月だけを表示します。YDisplayData プロパティを設定して y 軸に 2017 年を追加します。これらのプロパティを、それぞれ XData または YData の値からなるサブセット、スーパーセット、または順列に設定します。
h.XDisplayData = {'January','April','July','October'};
h.YDisplayData = {'2015','2016','2017'};
2017 年に関連付けられているデータがないため、ヒートマップ セルでは欠損データの色が使用されます。
参考
関数
heatmap|table|readtable|addcats|removecats|renamecats|reordercats|categorical