ドキュメンテーション

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

heatmap

ヒートマップ チャートの作成

構文

h = heatmap(tbl,xvar,yvar)
h = heatmap(tbl,xvar,yvar,'ColorVariable',cvar)
h = heatmap(cdata)
h = heatmap(xvalues,yvalues,cdata)
h = heatmap(___,Name,Value)
h = heatmap(parent,___)

説明

h = heatmap(tbl,xvar,yvar) は table tbl からヒートマップを作成し、HeatmapChart オブジェクトを返します。入力 xvar は、x 軸に沿って表示する table 変数を示します。入力 yvar は、y 軸に沿って表示する table 変数を示します。既定の色は、x 値と y 値の各ペアが共に table に出現する回数を合計した、カウント数の集計に基づきます。ヒートマップを作成した後で変更を加えるには、h を使用します。プロパティの一覧については、HeatmapChart のプロパティ を参照してください。

h = heatmap(tbl,xvar,yvar,'ColorVariable',cvar)cvar で指定された table 変数を使用して、カラー データを計算します。既定の計算方法は、平均値の集計です。

h = heatmap(cdata) は行列 cdata からヒートマップを作成します。ヒートマップには、cdata の各値について 1 つのセルがあります。

h = heatmap(xvalues,yvalues,cdata) は、x 軸と y 軸に沿って表示する値のラベルを指定します。

h = heatmap(___,Name,Value) は、1 つ以上の名前と値のペアの引数を使用してヒートマップの追加のオプションを指定します。オプションは他のすべての入力引数の後に指定します。プロパティの一覧については、HeatmapChart のプロパティ を参照してください。

h = heatmap(parent,___) は、parent で指定された Figure、パネル、またはタブにヒートマップを作成します。

すべて折りたたむ

医療患者データの table からヒートマップを作成します。

patients データセットを読み込み、ワークスペースに読み込んだ変数のサブセットから table を作成します。次に、Smoker 値と SelfAssessedHealthStatus 値の同じセットをもつ患者の合計数をカウントするヒートマップを作成します。

load patients
tbl = table(LastName,Age,Gender,SelfAssessedHealthStatus,...
    Smoker,Weight,Location);
h = heatmap(tbl,'Smoker','SelfAssessedHealthStatus');

ヒートマップを作成し、y 軸に沿ったラベルを並べ替えます。

patients データセットを読み込み、そのデータからヒートマップを作成します。HeatmapChart オブジェクトを変数 h に代入します。

load patients
tbl = table(LastName,Age,Gender,SelfAssessedHealthStatus,...
    Smoker,Weight,Location);
h = heatmap(tbl,'Smoker','SelfAssessedHealthStatus');

y 軸に沿ったラベルを並べ替えます。最初に、関数 categorical を使用して table の SelfAssessedHealthStatus 列のデータをセル配列からカテゴリカル配列に変更します。次に、関数 reordercats を使用してカテゴリを並べ替えます。

これらの関数はワークスペースの table (tbl) に適用できます。あるいは、HeatmapChart オブジェクトの SourceTable プロパティに格納されている table (h.SourceTable)) に適用することもできます。HeatmapChart オブジェクトに格納された table にそれらを適用する場合、元のデータには影響しません。

h.SourceTable.SelfAssessedHealthStatus = categorical(h.SourceTable.SelfAssessedHealthStatus);
neworder = {'Excellent','Good','Fair','Poor'};
h.SourceTable.SelfAssessedHealthStatus = reordercats(h.SourceTable.SelfAssessedHealthStatus,neworder);

同様に、関数 addcatsremovecats、または renamecats を使用して、それぞれヒートマップのラベルの追加、削除、または名前の変更ができます。

ヒートマップを作成し、ヒートマップ セルの色の決定に使用する table 変数を指定します。

patients データセットを読み込み、そのデータからヒートマップを作成します。ColorVariable オプションを 'Age' に設定し、特定の Smoker 値と SelfAssessedHealthStatus 値のペアをもつ患者の年齢の平均値を使用して各セルに着色します。

load patients
tbl = table(LastName,Age,Gender,SelfAssessedHealthStatus,...
    Smoker,Weight,Location);
h = heatmap(tbl,'Smoker','SelfAssessedHealthStatus','ColorVariable','Age');

ヒートマップを作成し、ヒートマップ セルの色の決定に使用する table 変数と計算方法を指定します。

患者のデータセットを読み込み、そのデータからヒートマップを作成します。特定の Smoker 値と SelfAssessedHealthStatus 値のペアをもつ患者の年齢の中央値を使用して、各セルに着色します。ColorVariable オプションを 'Age' に指定し、ColorMethod オプションを 'median' に指定します。

load patients
tbl = table(LastName,Age,Gender,SelfAssessedHealthStatus,...
    Smoker,Weight,Location);
h = heatmap(tbl,'Smoker','SelfAssessedHealthStatus','ColorVariable','Age','ColorMethod','median');

データの行列を作成します。次に、その行列値のヒートマップを作成します。x 軸と y 軸に沿った既定のラベルは、1、2、3 のように表示されます。

cdata = [45 60 32; 43 54 76; 32 94 68; 23 95 58];
h = heatmap(cdata);

データの行列を作成します。次に、その行列値のヒートマップを作成します。最初の 2 つの入力引数を必要なラベルとして指定することで、x 軸と y 軸に沿ってカスタム ラベルを使用します。HeatmapChart オブジェクトのプロパティを設定することで、タイトルと軸ラベルを指定します。

cdata = [45 60 32; 43 54 76; 32 94 68; 23 95 58];
xvalues = {'Small','Medium','Large'};
yvalues = {'Green','Red','Blue','Gray'};
h = heatmap(xvalues,yvalues,cdata);

h.Title = 'T-Shirt Orders';
h.XLabel = 'Sizes';
h.YLabel = 'Colors';

ヒートマップを作成し、ColorScaling プロパティを設定して、各行または各列に沿った色を正規化します。

サンプル ファイル outages.csv を table に読み取ります。このサンプル ファイルには、米国における電力会社の停電を表すデータが含まれています。この table には、RegionOutageTimeLossCustomersRestorationTime、および Cause の 6 列があります。各列の最初の 5 行を表示します。

T = readtable('outages.csv');
T(1:5,:)
ans =

  5×6 table

      Region          OutageTime        Loss     Customers     RestorationTime           Cause      
    ___________    ________________    ______    __________    ________________    _________________

    'SouthWest'    2002-02-01 12:18    458.98    1.8202e+06    2002-02-07 16:50    'winter storm'   
    'SouthEast'    2003-01-23 00:49    530.14    2.1204e+05    NaT                 'winter storm'   
    'SouthEast'    2003-02-07 21:15     289.4    1.4294e+05    2003-02-17 08:14    'winter storm'   
    'West'         2004-04-06 05:44    434.81    3.4037e+05    2004-04-06 06:10    'equipment fault'
    'MidWest'      2002-03-16 06:18    186.44    2.1275e+05    2002-03-18 23:23    'severe storm'   

x 軸に異なる地域、y 軸に異なる停電の原因を示すヒートマップを作成します。各セルには、各地域での特定原因による停電の発生回数が示されます。

h = heatmap(T,'Region','Cause');

各列に沿った色を正規化します。各列の最小値はカラーマップの最初の色にマッピングされ、最大値は最後の色にマッピングされます。最後の色は、各地域で停電を最も多く引き起こした原因を示します。

h.ColorScaling = 'scaledcolumns';

代わりに、各行に沿った色を正規化します。各行の最小値はカラーマップの最初の色にマッピングされ、最大値は最後の色にマッピングされます。最後の色は、各原因によって停電が最も多く発生した地域を示します。

h.ColorScaling = 'scaledrows';

ヒートマップを作成し、カスタム集計方法で計算したデータを使用してセルに着色します。関数 accumarray を使用してカラー データを計算します。

サンプル ファイル Temperature.csv を table に読み取ります。このファイルには、MonthYear、および TemperatureF の 3 列があります。

tbl = readtable(fullfile(matlabroot,'examples','graphics','TemperatureData.csv'));

table の Month 列と Year 列からカテゴリカル配列を作成します。次に、x 軸と y 軸に沿ったラベルとして使用する一意の月と年を判定します。

months = categorical(tbl.Month);
years = categorical(tbl.Year);
xlabels = categories(months);
ylabels = categories(years);

一意の月と年の数に基づいて生成されるカラー データの最終的なサイズを判定します。

nummonths = numel(xlabels);
numyears = numel(ylabels);

カテゴリカル配列 months および years を数値インデックスに変換して、関数 accumarray で使用します。関数 accumarray を使用して、月と年の各組み合わせに対する最高気温としてカラー データを計算します。欠損している月と年の組み合わせには NaN を使用します。

x = double(months);
y = double(years);
temps = tbl.TemperatureF;
cdata = accumarray([y,x],temps,[numyears,nummonths],@max,NaN);

ヒートマップを作成します。x 軸と y 軸にそれぞれ月と年のラベルを付けます。計算された行列データを使用してヒートマップ セルに着色します。

h = heatmap(xlabels,ylabels,cdata);

メモ: 関数 reordercats を使用して、カテゴリカル配列の軸ラベルを並べ替えることができます。

入力引数

すべて折りたたむ

ソース table。table として指定します。関数 table を使用してワークスペース変数から table を作成できます。また、関数 readtable を使用してデータを table としてインポートできます。

HeatmapChart オブジェクトの SourceTable プロパティに table が格納されます。

x 軸の table 変数。次のいずれかの形式で指定します。

  • いずれかの変数名を示す文字ベクトルまたは string。たとえば、heatmap(tbl,'HealthStatus','Gender') は x 軸として 'HealthStatus' という名前の変数を選択します。

  • table 変数のインデックスを示す数値スカラー。たとえば、heatmap(tbl,2,3) は x 軸として table 内の 2 番目の変数を選択します。

  • 1 つの true 要素を含む論理ベクトル。

table 変数に関連付けられた値は、関数 categorical が受け入れる離散カテゴリの有限集合にグループ化されなければなりません。値をカテゴリの有限集合にグループ化しない場合は、関数 discretize を使用して値をグループ化します。

x 軸に沿って表示されるラベルは、アルファベット順に表示されます。ラベルは、カテゴリカル配列を使用してカスタマイズできます。例については、「表形式データからのヒートマップの作成」を参照してください。

選択された変数は、HeatmapChart オブジェクトの XVariable プロパティに格納されます。

y 軸の table 変数。次のいずれかの形式で指定します。

  • いずれかの変数名の文字ベクトルまたは string。たとえば、heatmap(tbl,'HealthStatus','Gender') は y 軸として 'HealthStatus' という名前の変数を選択します。

  • table 変数のインデックスを示す数値スカラー。たとえば、heatmap(tbl,2,3) は y 軸として table 内の 3 番目の変数を選択します。

  • 1 つの true 要素を含む論理ベクトル。

table 変数に関連付けられた値は、関数 categorical が受け入れる離散カテゴリの有限集合にグループ化されなければなりません。値をカテゴリの有限集合にグループ化しない場合は、関数 discretize を使用して値をグループ化します。

y 軸に沿って表示されるラベルは、アルファベット順に表示されます。ラベルは、カテゴリカル配列を使用してカスタマイズできます。例については、「表形式データからのヒートマップの作成」を参照してください。

選択された変数は、HeatmapChart オブジェクトの YVariable プロパティに格納されます。

カラー データの table 変数。次のいずれかの形式で指定します。

  • いずれかの変数名の文字ベクトルまたは string。たとえば、heatmap(__,'ColorVariable,'HealthStatus') は y 軸として 'HealthStatus' という名前の変数を選択します。

  • table 変数のインデックスを示す数値スカラー。たとえば、heatmap(__,'ColorVariable',1) は y 軸として table 内の 3 番目の変数を選択します。

  • 1 つの true 要素を含む論理ベクトル。

table 変数に関連付けられた値は、数値型または logical でなければなりません。

行列データを使用した場合、このプロパティ値は空の [] です。選択された変数は、HeatmapChart オブジェクトの ColorVariable プロパティに格納されます。ColorData プロパティには、選択された変数に基づくデータが入力されます。

既定では、heatmap は平均値の集計に基づいてカラー データを計算します。計算方法を変更するには、ColorMethod プロパティを設定します。

ヒートマップ セルのカラー データ。行列として指定します。

HeatmapChart オブジェクトの ColorData プロパティに値が格納されます。

例: [40 24 68; 68 37 58; 49 23 46]

x 軸に沿って表示される値。カテゴリカル配列、string 配列、数値配列、または文字ベクトルのセル配列として指定します。

例: {'small','medium','large'}

例: categorical({'small','medium','large'})

y 軸に沿って表示される値。カテゴリカル配列、string 配列、数値配列、または文字ベクトルのセル配列として指定します。

例: {'small','medium','large'}

例: categorical({'small','medium','large'})

プロット対象の親コンテナー。figure オブジェクト、panel オブジェクト、または tab オブジェクトとして指定します。

名前/値のペアの引数

オプションの Name,Value の引数ペアをコンマ区切りで指定します。Name は引数名で、Value は対応する値です。Name は単一引用符 (' ') で囲まなければなりません。Name1,Value1,...,NameN,ValueN のように、複数の名前と値のペアの引数を任意の順序で指定できます。

例: heatmap(tbl,xvar,yvar,'ColorVariable','Temperatures','ColorMethod','median')

メモ

ここでは、プロパティの一部だけを紹介しています。完全な一覧については、HeatmapChart のプロパティ を参照してください。

すべて折りたたむ

チャートのタイトル。string、文字ベクトル、または '' (タイトルなし) として指定します。表形式データの場合、既定のチャートには自動生成されたタイトルが付けられます。

例: h = heatmap(__,'Title','My Title Text')

例: h.Title = 'My Title Text'

カラー データ値 (ColorData に格納) の計算方法。'count''mean''median''sum'、または 'none' として指定します。

カラー データに table の 3 番目の変数を使用しない場合は、この table に方法を指定します。

方法説明
'count'x 値と y 値の各ペアがソース table に出現する回数をカウントします。このオプションは ColorVariable プロパティを使用しません。ColorVariable パラメーターを指定しない場合の既定値です。

カラー データに table の 3 番目の変数を使用する場合は、ColorVariable プロパティを目的の変数に設定し、次の表にリストされたいずれかの方法として ColorMethod プロパティを指定します。x 値と y 値の各ペアに対して、次の方法ではソース table の ColorVariable 列の対応する値を使用してデータを計算します。

方法説明
'mean'平均値を計算します。この値は、ColorVariable プロパティを指定した場合の既定値です。
'median'中央値を計算します。
'sum'値を合計します。
'none'値を厳密に使用します。table は x 値と y 値の各ペアの複数のインスタンスを含むことができません。

集計データの行列を独自に計算する場合は、関数 accumarray を使用します。その行列を関数 heatmap の入力として指定します。

メモ

行列データを使用する場合、このプロパティは無視されます。この値は 'none' として表示されます。

例: h = heatmap(__,'ColorMethod','median')

例: h.ColorMethod = 'median'

R2017a で導入

この情報は役に立ちましたか?