データの可視化シリーズ 第16弾 - バブルチャート: 2つの数値型の列の関係を集計してから可視化する

# データの可視化シリーズ 第16弾 - バブルチャート: 2つの数値型の列の関係を集計してから可視化する

こんにちは

Exploratoryの[白戸](https://exploratory.io/author/GMq1Qom5tS/notes)です。

[前回](https://qiita.com/takatoshiroto/items/b1840a0083224b8e2840)は、散布図に「色で分割」と「繰り返し」の機能を使って、グループ(またはカテゴリー)ごとに2つの数値データ間の相関関係を可視化して、より細かくみていきました。

今回は、データをグループ(またはカテゴリ)ごとに集計した上で、数値データ間の関係を可視化したい時に使える、「バブルチャート」を紹介をします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/192148/6dee8b21-3572-3d84-9c11-d22e1eb6daa4.png)



# 使用データ

今回から、[EDA Salon](https://exploratory.io/author/kanaugust/notes) でも使用している、[世界の大学ランキングのデータ](https://ja.exploratory.io/note/kanaugust/EDA-Salon-xny2ner5Ob)を使って可視化していきます。

データラングリングしている状態なので、もし同様のデータを使用したい場合は[こちら](https://exploratory.io/data/GMq1Qom5tS/University-Ranking-DataViz-Pkb7Rzx0zo)からEDFをダウンロードしてください。



# データの可視化の目的

**目的**

国によって、研究のスコアと教えることに対するスコアの間の関係は同じか、それとも違うのかを平均値をもとに調べたい。
また、その国でランキングに入っている数や、卒業した後の給料のスコアはどのくらいなのかも知りたい。


**使用機能**

* バブルチャート
* サイズ
* 色で分割
* 繰り返し


# 可視化

バブルチャートは散布図と同じように、2つの列の値をそれぞれX軸とY軸に割当て、それらが交わる場所に点を描画します。

しかし、散布図は全てのデータポイントをプロットしますが、バブルチャートは**グループごとに集計**したデータをプロットするという違いがあります。

## グループ化を使って、集計の単位を設定


新規にチャートを作成し、チャートタイプに「バブル」を選びます。

X軸には研究に対するスコアのresearchを、Y軸には教えることに対するスコアのteachingを選択します。集計関数はどちらも平均値(AVG)にします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/192148/1dbbc29d-10fe-93c4-69ec-e319c5150bfb.png)


バブルチャートに一つの点がプロットされました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/192148/4cf169e7-26b8-4167-3e91-50c637a500ae.png)


これは、すべてのデータのX軸とY軸の平均値を集計してデータを一つの点でプロットしています。

つまり、全ての国のresearchとteachingの平均値を集計して、対応した位置にデータを点でプロットしたことになります。

ここからバブルチャートの特徴でもある「グループ化」を使って、それぞれのグループごとにデータをプロットしていきます。

今回は国ごとにグループ化していきたいために、グループ化にcountryを選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/192148/42148472-f8a6-bc46-ec34-5e6b8223a194.png)

国ごとに集計されたデータを点でプロットすることができました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/192148/92853c8a-c80f-3be3-c67b-4c99d92eef9f.png)


グループ化を使うことにより、それぞれのグループごとに集計した値を点でプロットすることができます。

また、このバブルチャートを見ると、一つの国が飛び抜けてスコアが高いことがわかります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/192148/280d933d-c884-d1eb-c908-9afe872bd82b.png)


シンガポールがresearchとteachingのスコアの平均値が高いようです。
しかし、大学の数が少ないため、平均値が高くなっていることが予想されます。そのため、「サイズ」を使って大学の数を可視化していきます。

## 「サイズ」を使って別の列の値を可視化

サイズに行の数を選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/192148/726de64f-dffc-2e3f-b96f-2dd9d9452201.png)


なんとこれだけで、国ごとにどれだけの大学数があるのかをサイズを使って可視化することができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/192148/34e200b5-8e07-0913-2aac-0a5382f42ab3.png)


より見やすくしたいため、サイズを大きくしていきます。

サイズの右上にあるプロパティを開きます。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/192148/8d8a1a65-3494-1ad8-8201-e8648e2e9bda.png)


最大サイズがデフォルトでは40になっていますが、2倍の80にして適用します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/192148/27cd4f27-565d-7289-ec36-a4c8550afd6e.png)


サイズを大きくしたことによって、国ごとの大学数の違いがよりわかりやすくなりました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/192148/fcd387c1-8a31-657d-b703-c1efd8af3603.png)


先ほどresearchとteachingのスコアが高かったシンガポールを見てみます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/192148/d3cece2e-c30d-96c9-5cbf-076755be8657.png)


すると、大学の数は2つしかないことがわかりました。やはり大学の数が少ないため平均値が高かったようです。平均値の怖い罠ですね。

次に、もっともサイズが大きい国をみてみると、United States of Americaのようです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/192148/8e471f1f-9bda-6f44-2ec6-e6fea15c72ae.png)


ランキング入りしている大学数が147校もあるとは、やはりアメリカは桁が違いますね。

ちなみに日本をみてみると、41校ランキング入りしているようです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/192148/7436f40a-ee81-798e-6332-cef3fa8559ea.png)


だいたい中間あたりに位置している日本の大学ですが、大学を卒業した後の給料は他の国に比べて高いのか低いのか気になりませんか？

そのため、大学卒業後の給料に関するスコアがあるので、「色」を使って可視化していきます。

## 「色」を使ってさらに別の列の値を可視化


「色で分割」に給料のスコアを示すincomeを選択し、集計関数を平均値(AVG)にします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/192148/f33a9fc3-5e8c-e2f8-6886-ee434ca186e8.png)


給料のスコアの平均に応じて色をつけることができました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/192148/9fb02aef-5341-f7d8-69f0-d2929e874c5d.png)


incomeは数値データなので、等幅で値を区切り5等分しています。
数値が大きいほど、色も濃くなっています。

デフォルトの色だと薄い点が見にくいため、色を変更します。

色で分割のメニューをクリックし、色の設定を開きます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/192148/425530ff-610a-c4a4-271a-bd0ccb236dd1.png)


カラーパレットを「イエロー -オレンジ-」にします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/192148/cb223d24-9346-9a57-b563-65bb7917a2f3.png)


大学卒業後の給料の平均値を色を使って可視化することができました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/192148/b52b1c76-5876-adb1-e26a-db21892ac4fd.png)


日本を見てみると、incomeの平均値は47.39とこのスコアも中間層に位置しているようです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/192148/96e50e18-c626-9dd0-f978-44afe8ac9412.png)


この給料の違いは、国ごとなのかそれともアジアやヨーロッパなどの区分よって違うのか見たいため、繰り返しを使ってバブルチャートを分割していきます。

## 「繰り返し」を使って、アジアやヨーロッパごとに分ける

アジアやヨーロッパごとにチャートを分けてみたいため繰り返しに、country_coutrycodeを選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/192148/18573a0f-9705-db94-18e9-79a78c22444e.png)


これでアジアやヨーロッパごとにチャートを分けることはできたんですが、一列に4つのチャートが表示されていて見づらいため、列の数を調整します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/192148/cc5b531f-2b97-8392-888c-8543aacfb602.png)



繰り返しのプロパティを開きます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/192148/4d1a249f-8c0d-9ff5-eca7-b92f0b7d95f8.png)



列の数はデフォルトでは自動になっていますが、今回は3に設定します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/192148/21a0af89-da53-ab0c-3b91-7cca8ceed0a9.png)


これにより、一つ一つのチャートがよりみやすくなりました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/192148/bcc1767a-fb7b-411f-a6b3-003f7dd527bc.png)



ランキングに選ばれている国の数はアジアとヨーロッパが多いようです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/192148/51f6ca18-453b-0973-a277-48997f0d7ae6.png)

ヨーロッパはresearchとteachingのスコアの水準がアジアに比べて高い国が多いです。しかし、給料の水準で見るとアジアのほうが高く見えます。

アフリカでは、南アフリカが給料のスコアが高いようですが、他の国ではどのスコアも低いようです。


# まとめ

今回はバブルチャートを使用して、グループごとに集計されたデータを点でX軸とY軸に対応する位置にプロットして可視化していきました。さらには、「サイズ」や「色で分割」を使って別の列の情報を可視化することで、データを様々な角度から理解していくことができました。

次回は、数値データとカテゴリデータの関係性を理解したいときによく使われる、「箱ひげ図」を使用します。

* 可視化シリーズ 第18弾 - 「箱ひげ図」を使って数値データとカテゴリデータの組み合わせを可視化する

---

# Exploratoryデータ・アカデミー

データの可視化、またはデータ分析に関してもっと知りたい、学びたいという方は、私達が提供しているトレーニングやセミナーに参加してみてください。

[こちら](https://ja.exploratory.io/data-academy-jp?utm_campaign=chart_intro_16&utm_medium=blog&utm_source=qiita)のExploratoryデータ・アカデミーのページに詳細情報があります。

データを使ってより良い意思決定を行っていきたいと言う方は、ぜひこの機会に参加をご検討ください！