このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
heatmap
ヒートマップ チャートの作成
構文
説明
テーブル データ
行列データ
追加オプション
heatmap(___,
は、1 つ以上の名前と値のペアの引数を使用してヒートマップの追加のオプションを指定します。オプションは他のすべての入力引数の後に指定します。プロパティの一覧については、HeatmapChart のプロパティ を参照してください。Name,Value
)
heatmap(
は、parent
,___)parent
で指定された Figure、パネルまたはタブにヒートマップを作成します。
は、h
= heatmap(___)HeatmapChart
オブジェクトを返します。チャートのプロパティを作成後に変更するには、h
を使用します。プロパティの一覧については、HeatmapChart のプロパティ を参照してください。
例
表形式データからのヒートマップの作成
医療患者データの 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 軸に沿ったラベルを並べ替えます。
h.YDisplayData = {'Excellent','Good','Fair','Poor'};
あるいは、データを categorical データに変更してから、関数reordercats
を使用してカテゴリを並べ替えることで、ラベルを並べ替えることもできます。同様に、関数addcats
、removecats
またはrenamecats
を使用して、それぞれヒートマップのラベルの追加、削除または名前の変更ができます。
ヒートマップの色の table 変数の指定
ヒートマップを作成し、ヒートマップ セルの色の決定に使用する 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';
タイトルでのギリシャ文字用の LaTeX の使用
R2023b 以降
タイトル、軸ラベル、またはデータ ヒントに LaTeX (または TeX) マークアップを使用するには、HeatmapChart
オブジェクトの Interpreter
プロパティを設定します。
たとえば、LaTeX を使用してギリシャ文字を表示するタイトルをもつヒートマップ チャートを作成します。チャートを作成する際は、Interpreter
プロパティを "latex"
に設定します。そして、title
関数を呼び出すときにマークアップを含めます。
heatmap(randi(100,5,3),Interpreter="latex") title("$\hat{\psi_1}$ Values for ${1\le\alpha\le3}$")
各行または各列に沿った色の正規化
ヒートマップを作成し、ColorScaling
プロパティを設定して、各行または各列に沿った色を正規化します。
サンプル ファイル outages.csv
を table に読み取ります。このサンプル ファイルには、米国における電力会社の停電を表すデータが含まれています。この table には、Region
、OutageTime
、Loss
、Customers
、RestorationTime
、および 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';
カスタム集計方法を使用したカラー データの計算
ヒートマップを作成し、カスタム集計方法で計算したデータを使用してセルに着色します。関数 pivot
を使用してカラー データを計算します。
サンプル ファイル TemperatureData.csv
を table に読み取ります。このファイルには、Year
、Month
、Day
、および TemperatureF
の 4 つの列があります。
tbl = readtable('TemperatureData.csv');
関数 pivot
を使用して、月と年の各組み合わせに対する最高気温としてカラー データを計算します。欠損している月と年の組み合わせには NaN
を使用します。
P = pivot(tbl,Columns="Month",Rows="Year",DataVariable="TemperatureF",Method=@(x) mean(x,"includenan"))
P=2×13 table
Year April August December February January July June March May November October September
____ ______ ______ ________ ________ _______ ______ ______ ______ ______ ________ _______ _________
2015 43.267 69.903 40.548 15.448 21.355 69.161 59.967 28.484 57.548 43.8 49.323 64.467
2016 42.267 NaN NaN 29.966 27.71 68.824 63.733 37.806 53.806 NaN NaN NaN
ピボットした table の変数を再配列します。
P = P(:,["Year" "January" "February" "March" "April" "May" "June" "July" "August" "September" "October" "November" "December"]);
計算されたデータ値を使用して、ヒートマップを作成してヒートマップ セルに着色します。
xvar = P.Properties.VariableNames(2:end);
yvar = string(P.(1));
cvar = P{:,2:end};
heatmap(xvar,yvar,cvar)
title("Maximum Temperatures (F)")
色の数が異なるヒートマップの比較
既定では、ヒートマップ チャートは sky
カラーマップの 256 色のサンプリングを使用します。名前と値の引数 Colormap
を指定して、サンプリングを変更できます。
たとえば、2 行 1 列のタイル表示チャート レイアウトで 2 つのヒートマップ チャートを作成します。上のチャートでは既定の 256 色のセットを使用しており、下のチャートでは 2 色のみを使用しています。
tiledlayout(2,1,TileSpacing="compact") % Top chart with default colors nexttile heatmap(magic(10)) % Bottom chart with two colors nexttile heatmap(magic(10),Colormap=sky(2))
入力引数
tbl
— ソース table
table | timetable
ソース table。table または timetable として指定します。
関数 table
を使用してワークスペース変数から table を作成できます。また、関数 readtable
を使用してデータを table としてインポートできます。関数 timetable
を使用してワークスペース変数から timetable を作成できます。
HeatmapChart
オブジェクトの SourceTable
プロパティにソース table が格納されます。
xvar
— x 軸の table 変数
文字ベクトル | string スカラー | 数値スカラー | logical ベクトル
x 軸の table 変数。次のいずれかの形式で指定します。
いずれかの変数名を示す文字ベクトルまたは string スカラー。たとえば、
heatmap(tbl,'HealthStatus','Gender')
は x 軸として'HealthStatus'
という名前の変数を選択します。table 変数のインデックスを示す数値スカラー。たとえば、
heatmap(tbl,2,3)
は x 軸として table 内の 2 番目の変数を選択します。1 つの
true
要素を含む logical ベクトル。
table 変数に関連付けられた値は、関数 categorical
が受け入れる離散カテゴリの有限集合にグループ化されていなければなりません。値がカテゴリの有限集合にグループ化されていない場合は、関数 discretize
を使用して値をグループ化します。
x 軸に沿って表示されるラベルは、アルファベット順に表示されます。ラベルは、categorical 配列を使用してカスタマイズできます。例については、表形式データからのヒートマップの作成を参照してください。
選択された変数は、HeatmapChart
オブジェクトの XVariable
プロパティに格納されます。
yvar
— y 軸の table 変数
文字ベクトル | string スカラー | 数値スカラー | logical ベクトル
y 軸の table 変数。次のいずれかの形式で指定します。
いずれかの変数名の文字ベクトルまたは string スカラー。たとえば、
heatmap(tbl,'HealthStatus','Gender')
は y 軸として'Gender'
という名前の変数を選択します。table 変数のインデックスを示す数値スカラー。たとえば、
heatmap(tbl,2,3)
は y 軸として table 内の 3 番目の変数を選択します。1 つの
true
要素を含む logical ベクトル。
table 変数に関連付けられた値は、関数 categorical
が受け入れる離散カテゴリの有限集合にグループ化されていなければなりません。値がカテゴリの有限集合にグループ化されていない場合は、関数 discretize
を使用して値をグループ化します。
y 軸に沿って表示されるラベルは、アルファベット順に表示されます。ラベルは、categorical 配列を使用してカスタマイズできます。例については、表形式データからのヒートマップの作成を参照してください。
選択された変数は、HeatmapChart
オブジェクトの YVariable
プロパティに格納されます。
cvar
— カラー データの table 変数
文字ベクトル | string スカラー | 数値スカラー | logical ベクトル
カラー データの table 変数。次のいずれかの形式で指定します。
いずれかの変数名の文字ベクトルまたは string スカラー。たとえば、
heatmap(__,'ColorVariable','HealthStatus')
は y 軸として'HealthStatus'
という名前の変数を選択します。table 変数のインデックスを示す数値スカラー。たとえば、
heatmap(__,'ColorVariable',1)
は y 軸として table 内の 3 番目の変数を選択します。1 つの
true
要素を含む logical ベクトル。
table 変数に関連付けられた値は、数値型または logical
でなければなりません。
行列データを使用した場合、このプロパティ値は空の []
です。選択された変数は、HeatmapChart
オブジェクトの ColorVariable
プロパティに格納されます。ColorData
プロパティには、選択された変数に基づくデータが入力されます。
既定では、heatmap
は平均値の集計に基づいてカラー データを計算します。計算方法を変更するには、ColorMethod
プロパティを設定します。
cdata
— カラー データ
行列
ヒートマップ セルのカラー データ。行列として指定します。
HeatmapChart
オブジェクトの ColorData
プロパティに値が格納されます。
例: [40 24 68; 68 37 58; 49 23 46]
xvalues
— x 軸に沿って表示される値
categorical 配列 | string 配列 | 数値配列 | 文字ベクトルの cell 配列
x 軸に沿って表示される値。categorical 配列、string 配列、数値配列、または文字ベクトルの cell 配列として指定します。
例: {'small','medium','large'}
例: categorical({'small','medium','large'})
yvalues
— y 軸に沿って表示される値
categorical 配列 | string 配列 | 数値配列 | 文字ベクトルの cell 配列
y 軸に沿って表示される値。categorical 配列、string 配列、数値配列、または文字ベクトルの cell 配列として指定します。
例: {'small','medium','large'}
例: categorical({'small','medium','large'})
parent
— 親コンテナー
Figure
オブジェクト | Panel
オブジェクト | Tab
オブジェクト | TiledChartLayout
オブジェクト | GridLayout
オブジェクト
親コンテナー。Figure
、Panel
、Tab
、TiledChartLayout
、または GridLayout
オブジェクトとして指定します。
名前と値の引数
引数のオプションのペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで Name
は引数名で、Value
は対応する値です。名前と値の引数は他の引数の後になければなりませんが、ペアの順序は重要ではありません。
R2021a より前では、コンマを使用してそれぞれの名前と値を区切り、Name
を引用符で囲みます。
例: heatmap(tbl,xvar,yvar,'ColorVariable','Temperatures','ColorMethod','median')
メモ
ここでは、プロパティの一部だけを紹介しています。完全な一覧については、HeatmapChart のプロパティ を参照してください。
Title
— チャートのタイトル
文字ベクトル | 文字ベクトルの cell 配列 | string 配列 | categorical 配列
チャートのタイトル。文字ベクトル、文字ベクトルの cell 配列、string 配列または categorical 配列として指定します。
例: h = heatmap(rand(10,10),'Title','My Title Text')
例: h.Title = 'My Title Text';
複数行のラベルを作成するには、文字ベクトルの cell 配列または string 配列を指定します。配列の各要素は、テキストの行に対応します。
例: h.Title = {'My','Title'};
タイトルを categorical 配列として指定した場合、MATLAB® はカテゴリではなく、配列内の値を使用します。
表形式データを使用してチャートを作成した場合、既定のチャートには自動生成されたタイトルが付けられます。タイトルが不要の場合は、''
を指定します。
既定で、ヒートマップはユーザー指定テキストについて TeX マークアップのサブセットをサポートします。TeX マークアップを使用して、上付き文字や下付き文字の追加、フォントのタイプや色の変更、テキストへの特殊文字の挿入を行うことができます。通常のテキストでアンダースコア (_) などの TeX マークアップ文字を使用するには、挿入する文字の前にバックスラッシュ (\) を挿入します。バックスラッシュは TeX のエスケープ文字です。詳細については、text オブジェクトのInterpreterプロパティを参照してください。
ColorMethod
— カラー データの計算方法
'count'
| 'mean'
| 'median'
| 'sum'
| 'max'
| 'min'
| 'none'
カラー データ値 (ColorData
に格納) の計算方法。'count'
、'mean'
、'median'
、'sum'
、'max'
、'min'
または 'none'
として指定します。
カラー データに table の 3 番目の変数を使用しない場合は、メソッドを 'count'
として指定します。メソッドが 'count'
である場合、ヒートマップは ColorVariable
プロパティを使用しません。代わりに、x 値と y 値の各ペアがソース table に出現する回数をカウントします。この値は、表形式データを使用して ColorVariable
パラメーターを指定しない場合の既定値です。
カラー データに table の 3 番目の変数を使用する場合は、ColorVariable
プロパティを目的の変数に設定し、次の表にリストされたいずれかの方法として ColorMethod
プロパティを指定します。x 値と y 値の各ペアに対して、次の方法ではソース table の ColorVariable
列の対応する値を使用してデータを計算します。
方法 | 説明 |
---|---|
'mean' | 平均値を計算します。この値は、ColorVariable プロパティを指定した場合の既定値です。 |
'median' | 中央値を計算します。 |
'sum' | 値を合計します。 |
'max' | 最大値を使用します。 |
'min' | 最小値を使用します。 |
'none' | 値を厳密に使用します。table は x 値と y 値の各ペアの複数のインスタンスを含むことができません。この値は、行列データを使用する場合の既定値です。 |
集計データの行列を独自に計算する場合は、関数 accumarray
を使用します。その行列を関数 heatmap
の入力として指定します。
例: h = heatmap(__,'ColorMethod','median')
例: h.ColorMethod = 'median'
出力引数
h
— ヒートマップ チャート オブジェクト
HeatmapChart
オブジェクト
スタンドアロンの可視化である HeatmapChart
オブジェクト。h
を使用して、ヒートマップ チャートの作成後にそのプロパティを設定します。
詳細
スタンドアロンの可視化
スタンドアロンの可視化は、他のチャートから独立して機能する特別な目的のために設計されたチャートです。plot
および surf
のような他のチャートとは異なり、スタンドアロンの可視化には事前構成済みの axes オブジェクトが組み込まれています。一部のカスタマイズは使用できません。スタンドアロンの可視化には次のような特徴もあります。
ライン、パッチ、または表面といった他のグラフィックス要素と組み合わせることはできません。したがって、
hold
コマンドはサポートされません。関数
gca
はチャート オブジェクトを現在の座標軸として返すことができます。axes オブジェクトを入力引数として受け入れる多くの MATLAB 関数にチャート オブジェクトを渡すことができます。たとえば、チャート オブジェクトを関数
title
に渡すことができます。
ヒント
ヒートマップでデータを対話的に調べるには、次のオプションを使用します。
ズーム — スクロール ホイールまたは + キーと - キーを使用してズームします。
パン — ヒートマップをクリックしてドラッグするか、矢印キーを使用して、複数の行または列をまたいで移動します。
データ ヒント — ヒートマップにカーソルを合わせてデータ ヒントを表示します。
行と列の再配列 — 行ラベルまたは列ラベルをクリックしてドラッグし、別の位置に移動します。
値の並べ替え — 行ラベルまたは列ラベルにカーソルを合わせると表示されるアイコンをクリックします。1 回クリックすると値は昇順に並べ替えられ、2 回で値は降順に並べ替えられ、3 回で順序がリセットされます。
table からヒートマップ チャートを作成する場合、そのデータ ヒントをカスタマイズできます。
データ ヒントに対して行を追加または削除するには、チャート上の任意の場所を右クリックし、[データ ヒントの変更] をポイントします。次に、変数を選択または選択解除します。
複数の行を追加または削除するには、チャート上で右クリックして [データ ヒントの変更] をポイントし、[詳細] を選択します。次に、[>>] をクリックして変数を追加するか、[<<] をクリックして変数を削除します。
バージョン履歴
R2017a で導入R2019a: ヒートマップは TeX マークアップを使用してテキストを解釈
R2019a 以降、ヒートマップはリテラル文字を表示する代わりに TeX マークアップを使用してテキストを解釈します。通常のテキストでアンダースコア (_) などの TeX マークアップ文字を使用するには、挿入する文字の前にバックスラッシュ (\) を挿入します。バックスラッシュは TeX のエスケープ文字です。TeX マークアップの使用の詳細については、text オブジェクトのInterpreterプロパティを参照してください。
参考
関数
プロパティ
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)