Fundamentals of Data Visualization 読書会 まとめ

# 本記事の位置付け

下記読書会のためのまとめです。

https://gaisaba.connpass.com/event/304392/

# 課題図書
https://clauswilke.com/dataviz/

この記事に出てくる図は、すべて上記ページから引用したものです。

# 今回の範囲
6 Visualizing amounts


## 6 Visualizing amounts

異なるブランドの車の総売り上げを可視化したいときなど、数字の大きさに関心のあるときは多くあります。定量的な値の大きさ（the magnitude of the quantitative values）が主に重要視されます。

量を表す際、棒グラフ（シンプルなものや積み上げたもの）、ドットプロット、ヒートマップが良く使われます。

:::note info
以降、7章から様々な対象の可視化が紹介されていくなかで、最初が「量」
:::





## 6.1 棒グラフ(Bar plots)

:::note warn
To motivate the concept of a bar plot
棒グラフの概念を動機づけるために（？）
:::

ある週末に最も人気のあった映画の興行収入を考えてみましょう（使用データ）。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3333233/03788099-8e99-3669-a74f-0057e6e3c002.png)

まずシンプルな垂直棒グラフ（バーはゼロから描画するのがひとつの特徴）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3333233/30551a03-7143-531f-9547-ad3425d3766a.png)

ラベルが横幅をとってしまうのがよくある問題になります。

:::note info
「I had to make Figure 6.1 fairly wide and space out the bars so that I could place the movie titles underneath.」とのことで、この例の場合Greatest Showmanのラベルがはいるようにしつつ、均等にするために横幅を確保している模様
:::

そういうときには、ラベルを傾けるのもひとつの策です（ただ、読みづらいという理由から、この方法は著者の好みではない）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3333233/a038e941-8b81-9ed8-56e0-a2cefb36b89a.png)


より良いと思われるのは、水平方向の棒グラフ。コンパクトな図になり、テキストも読みやすくなります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3333233/20df1ccc-18ca-e0b8-af16-524edacd26ed.png)

垂直型でも、水平型でも、各バーを並べる順番には注意が必要です。任意だったり、アルファベット順に並べてしまうと、直感的でなくなってしまいます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3333233/f34f463c-cfdb-2af7-26ab-bb885fde9949.png)


順番の並べ替えをするのは、カテゴリがもともと持つ順番の無いときに限るべきです（年齢層のように、もともと順番を持つような場合は、並べ替えはせず、本来の順番を保持すべき）。

例：年齢層の順番にバーをならべたもの（下図上部）と、収入中央値の高い順からならべたもの（下図下部）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3333233/93465f48-8e50-6438-4d5d-cb0be329d279.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3333233/499303d7-25da-f8f0-4f2f-6b5a53f7b6f4.png)

:::note info
確かに年齢層の順番に並んでないのは見づらいような（どの年齢層が収入高いかはみやすいものの）
:::

## 6.2 グループ化された棒グラフと積み上げ棒グラフ(Grouped and stacked bars)

ふたつの分類を一度にみたいときには、グループ化された棒グラフが有効です。下図は年齢層と人種のふたつの分類について棒グラフの例です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3333233/079c6c8b-13c1-8d0a-55a4-1e265121b306.png)

:::note info
ひとつの分類（年齢層）についてX軸沿いに並べて、もうひとつの分類（人種）についてひとつのまとまりの中で分けてバーに示す。ふたつの分類のどちらをX軸にもってくるかで印象も変わる（次のグラフ）。
:::

このやりかたは一度に多くの情報を扱えるものの、混乱を招きやすい面もあります。
もし、人種間の収入レベルに関心があるのであれば以下の形のほうが良いかもしれません。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3333233/416730c0-7e65-3c5a-213a-5d6d9ae4f1a8.png)

うえのふたつのグラフはどちらも、ひとつの分類をX軸上の位置で、もうひとつの分類を色で区別しています。後者の色で分ける場合、凡例をみながら咀嚼しないといけないので、読むのが大変になります（more mental effort）。
その大変さを軽減するには、分類ごとにグラフを分ける対策があります（下図）。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3333233/0f1664e8-917a-5338-7471-846f9f7dcb96.png)


:::note info
ひとつのグラフの中に、ひとつの分類だと見やすい。
:::


:::note info
「Which of these various options we choose is ultimately a matter of taste.」
これらの様々な選択肢の中からどれを選ぶかは、最終的には好みの問題である。
:::

積み上げ棒グラフという選択肢もあります。それぞれの量に加えて、量の合計に意味があるときに効果的です（例えば、収入中央値をふたつ合計しても意義深い情報にはならない一方で、ふたつの映画の週末の興行収入の合計は意味がある）。

:::note warn
「Stacking is also appropriate when the individual bars represent counts.」のところでは amounts ではなくcounts が使われている
:::

タイタニック号の男女ごとの乗客数を例に見てみましょう。乗客は、1st - 3rd　のみっつの乗船のクラスに分かれていて、男性の乗客数は、女性の乗客数のおおよそ2倍になっています。乗船クラスと性別の内訳を可視化するため、クラスごとに分けた、積み上げ棒グラフを使っています。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3333233/a6269908-ad98-8a10-8adb-ff9796b42c68.png)

:::note info
ひとつのバーの積み上げの合計を見ると、そのクラスの男女合計乗客数がわかる形になっている。
:::

この例では、数値を直接バーのなかに書くという方法を取ることで、Y軸を明示的に書かずに済んでいます。（小さめの値のときはこの方法はわかりやすい）

:::note info
「This substantially increases the amount of information conveyed by the plot without adding much visual noise」とのことで、視覚的なノイズを増やさずに、プロットがもたらす情報量をふやすことができる。
:::


## 6.3 ドットプロットとヒートマップ(Dot plots and heatmaps)

棒グラフには、ゼロ点から描画し始めないといけないという制約があります（バーの長さが、表す量と関係するため）。この制約でうまくはまらないようなとき、ドットによってプロットする方法が選択肢になり得ます。
下図はアメリカ大陸の25か国の平均寿命（life expectancies）を示しています。カナダがトップで、ボリビアとハイチが他国と比べて低い、ということがわかりやすく示されています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3333233/dcb80e4a-2a2e-666c-0ef0-174cb8318d73.png)

これを棒グラフで示すと、以下のようになり、先ほどの情報が伝えづらくなります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3333233/7808418b-de2b-4813-3303-e66d711d5764.png)

:::note info
棒グラフはゼロ点から始めないといけない一方で、ドットプロットは60を始点にできる
:::

棒グラフの時と同じく、要素の順番には注意が必要です。もし、平均寿命の長い順ではなく、国名のアルファベット順にした場合、明確なメッセージを伝えるのに失敗するでしょう（下図）。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3333233/2bbfb4c0-2307-e857-0e6f-df8cb13510d2.png)

:::note info
確かにみづらい
:::

ここまでの例は、位置で値を表していました（棒グラフであれば末端の場所、ドットプロットであれば点が打たれた場所）。要素数がとても多い大きなデータセットの場合、この方法はあまり向いていません（煩雑になってしまう）。代替策として、位置ではなく、色に値をマッピングする方法があります。これをヒートマップと呼びます。

下図は1994-2016の23年間の20か国におけるインターネットユーザの割合を示しています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3333233/52f8df60-b980-0af0-6559-79064828b06a.png)


特定の値の正確な値を読み取るのは難しい一方で、おおまかな傾向を際立たせることに成功しています。
どの国がインターネット利用をはじめるのが早かったか、2016年時点でどの国が高いユーザ率か、といったことがはっきりと見れます。

また、ヒートマップにおいても、並べる順番に注意が必要です。
上図では、2016年時点のユーザ率の高い順に並べていました。並べる条件を変え、ユーザ率が20%を超えたのが早かった順に並べると下図のようになります。


アメリカのデータをみると、インターネット利用を早くから開始していたのに2016年時点でのユーザ率が比較的低いことがわかります。イタリアにも似た傾向が見られます。対照的にイスラエルとフランスは、利用開始は比較的遅かったものの、広まるのは早かったことがわかります（同図で中盤あたりの順位にあるが2016年時点のユーザ率は高めになっている）。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3333233/6844f6b5-5131-109d-aaf8-fc4c36b19145.png)

なにが好ましいからはなにを伝えたいかにより変わってきます。もし、2016年時点のインターネット利用について話がしたいのであれば、最初の図の順番が良いでしょうし、インターネット利用開始の時期が現在の利用にどのように関係しているかを話したいのであれば、あとの図が向いているでしょう。
（まとめ終わり）