table データからのスタンドアロンの地理バブル チャートの作成
この例では、geobubble
関数を使用して table データからスタンドアロンの地理バブル チャートを作成する方法を示します。例内では、以下を行います。
ニュー イングランドの郡とライム病のデータを table に読み込みます。
table から地理バブル チャートを作成します。
バブルのサイズを変更して母集団を可視化します。
バブルの色を変更して、ライム病の症例数を可視化します。
geobubble
関数によって作成されたスタンドアロンの地理バブル チャートでは、バブルのライン幅や透明度の変更、テキストおよびラインの注釈の追加、サイズおよび色の凡例の移動などのカスタマイズはサポートされていません。より多くのカスタマイズをサポートする同様のチャートを作成するには、geoaxes
および bubblechart
関数を使用して地理座標軸でバブル チャートを作成します。geoaxes
および bubblechart
関数の使用例については、Combine Bubble Chart with Other Graphics in Geographic Axesを参照してください。
データの読み込み
ニュー イングランドの郡のデータとライム病のデータを含む table を読み込みます。この table には次の table 変数が含まれています。
Latitude
およびLongitude
— それぞれ、各郡の緯度と経度の座標。Population2010
— 2010 年の各郡の人口。Cases2010
— 2010 年の各郡のライム病症例数。
counties = readtable("counties.xlsx");
地理バブル チャートの作成
geobubble
関数を使用して地理バブル チャートを作成します。関数の最初の引数として table を渡し、その後に緯度と経度の座標を含む table 変数を渡します。gb
で GeographicBubbleChart
オブジェクトを返します。次に、geolimits
関数を使用して地理的範囲を調整します。既定では、すべてのバブルのサイズと色は同じです。
gb = geobubble(counties,"Latitude","Longitude"); geolimits([40.8 47.0],[-76.71 -63.22])
バブルのサイズの指定
バブルのサイズを変更して、郡の人口を可視化します。
バブル チャート オブジェクトの SizeVariable
プロパティを、人口データを含む table 変数に設定します。table 変数を使用してバブルのサイズを指定すると、バブル チャートにサイズの凡例が含まれます。
gb.SizeVariable = "Population2010";
バブルのサイズの制御の詳細については、スタンドアロンの地理バブル チャートでのバブルの制御を参照してください。
バブルの色の指定
バブルの色を変更して、ライム病の症例数を可視化します。
カラー データの分類
地理バブル チャートには、categorical カラー データが必要です。一般的に、categorical 配列は、categorical
または discretize
関数を使用して作成できます。
discretize
関数を使用して、ライム病の症例数を分類します。ビンには次の名前とエッジを使用します。
"Low"
— 症例数 0 ~ 50 件"Medium"
— 症例数 51 ~ 100 件"High"
— 症例数 101 ~ 500 件
cases = counties.Cases2010; categories = ["Low","Medium","High"]; binnedCases = discretize(cases,[0 50 100 500],"categorical",categories);
分類されたデータをバブル チャート オブジェクトのソース table の新しい変数に追加します。次に、バブル チャート オブジェクトの ColorVariable
プロパティを新しい変数に設定します。table 変数を使用してバブルの色を指定すると、バブル チャートに色の凡例が含まれます。
gb.SourceTable.BinnedCases2010 = binnedCases;
gb.ColorVariable = "BinnedCases2010";
未定義のカラー データの解決
スタンドアロンの地理バブル チャートのオブジェクトは未定義の色の値を無視しないため、色の凡例には未定義のカテゴリが含まれます。元のデータ (ここでは Cases2010
変数) に空の値またはビンのエッジの外側にある値が含まれている場合、未定義の色のカテゴリが表示されることがあります。未定義のカテゴリを調べて解決します。
未定義の色の値を含む table の行を検出します。次に、table の行に関連付けられているライム病の症例数を検出します。
tf = isundefined(gb.SourceTable.BinnedCases2010); idx = find(tf); % table rows gb.SourceTable.Cases2010(idx) % number of cases
ans = 514
分類されたデータでは [0, 500] の範囲の症例のみが対象となっていますが、この郡の症例数は 514 件です。データを再分類します。今回は上限 514
のビンのエッジを使用します。
rebinnedCases = discretize(cases,[0 50 100 514],"categorical",categories);
ソース table 内の分類されたデータを再分類されたデータに置き換えます。更新された色の凡例には、未定義のカテゴリが含まれていません。
gb.SourceTable.BinnedCases2010 = rebinnedCases;
バブルの色の指定
カテゴリと同じ数の色を含むカラーマップを作成して、新しいバブルの色を指定します。次に、バブル チャート オブジェクトの BubbleColorList
プロパティを設定して、バブルの色を変更します。
n = length(categories); cmap = autumn(n); gb.BubbleColorList = cmap;
バブル チャートでは、赤色を使用して症例数が少ないこと示し、黄色を使用して症例数が多いことを示しています。カテゴリを並べ替えることで、赤色と黄色を切り替えます。
gb.SourceTable.BinnedCases2010 = ... reordercats(gb.SourceTable.BinnedCases2010,["High","Medium","Low"]);
バブルの色の制御の詳細については、スタンドアロンの地理バブル チャートでのバブルの制御を参照してください。
チャートと凡例のタイトルの指定
バブル チャートにタイトルを追加します。
title("Lyme Disease in New England (2010)")
既定では、凡例のタイトルは table 変数の名前と同じになります。サイズおよび色の凡例のタイトルを変更するには、バブル チャート オブジェクトの SizeLegendTitle
プロパティおよび ColorLegendTitles
プロパティを設定します。
gb.SizeLegendTitle = "County Population"; gb.ColorLegendTitle = "Lyme Disease Severity";
table データの調整
大きなバブルの多くは赤色であり、これはライム病の症例数が人口密集地域で多くなっていることを示唆しています。バブル チャートを更新して、1 人あたりの症例数が最も多い場所を可視化します。
1,000 人あたりの症例数を計算してデータを正規化します。
casesPer1000 = counties.Cases2010 ./ counties.Population2010 * 1000;
正規化されたデータをソース table の新しい変数に追加します。次に、SizeVariable
プロパティを新しい変数に設定してバブル チャートを更新します。サイズの凡例のタイトルを更新します。
gb.SourceTable.CasesPer1000 = casesPer1000; gb.SizeVariable = "CasesPer1000"; gb.SizeLegendTitle = "Cases Per 1000";
正規化されたデータを使用したバブル チャートでは、1 人あたりの症例数の多さを基準とした場合の地理的分布が、正規化されていないデータを使用したバブル チャートとは異なっていることが示されています。