- 小久保 奈都弥 [なつみ], 2020: データ分析者のための Python データビジュアライゼーション入門 — コードと連動してわかる可視化手法。翔泳社, 211 pp. ISBN 978-4-7981-6397-0.
2020年8月に出た本。横幅は B5 と同じで たけは B5 より短い (A5よりはやや長い) 判、横書きのペーパーバック。わたしは 2021年4月に店頭でみつけた。Python によるプログラミングの本はたくさん出ているのだが、データの可視化を主題とする本は貴重だ。題名のうち「データ分析者のための」は表紙では左端に縦書き、背表紙では小さめの字で書いてあるが、奥づけではつづきと同じ大きさの字で書いてあるので、題名本体とみなしておく。
本書では visualization にあたる日本語を「ビジュアライゼーション」としているが、わたしの読書メモでは「可視化」と書いてしまうことにする。【1語にしては字数が多すぎると感じることのほか、「-ライ-」か「-リ-」かの区別をしたくないのだ。わたしが知っている英語の発音では、動詞の「visualize」ならば「-ライズ」とするが、名詞の「-ization」は a にアクセントがあり、アクセントのない i は あいまい母音になって、日本語の音で近似すれば「アイウエオ」のどれもありうるが二重母音にはならないと思う。】
第1章はデータ可視化の総論。04節で、可視化の目的に「概要を把握する」「発見を手助けする」「伝達する」をあげている。本書では、そのうちどれかにしぼることはしないで、方法を紹介していく。
第2章はデータをグラフにするときの基本的な考えかた。データの種類の大分類「名義尺度、順序尺度、間隔尺度、比尺度」がある。グラフ表現の基本要素としての色、位置、大きさ、長さ、形、傾き・角度のそれぞれの性質の説明がある。Tufte の「データ/インク比」が高い図がよいという考えも出てくる。棒グラフが不適切な例 (22ページ)、折れ線グラフが不適切な例 (32ページ)もある。ただし、不適切な棒グラフの例がなぜ不適切なのの説明がじゅうぶんでないと思った。
第3章はつかうソフトウェアの紹介。Python を Anaconda という環境の中でつかう。Jupyter Notebook の紹介もあるが必須ではないらしい。
第4章は Python でデータをとりあつかうプログラムの書きかた。Python の基本演算にくわえて、Pandas というパッケージのデータフレーム (DataFrame) という構造をつかう。
第5章は データをさまざまな形のグラフにすること。ヒストグラムや散布図などの、データ解析で基本的とされる技法も、棒グラフや折れ線グラフなどの、世間でよくつかわれるグラフ形式もある。【本書は、Cleveland のThe Elements of Graphing Data [読書メモ] とはちがって、円グラフや、その円の中心部をぬいた「ドーナツグラフ」も、つかえる技法とみとめている。わたしはだいたい Cleveland に賛同するが、円グラフは、全体のうちの1成分のわりあいをしめすばあいには (そのばあいにかぎって) すすめられると思う。ただし、中心角が認識できることが必要で、それができないドーナツ型はまずいと思っている(別ブログ [2012-08-12の記事], [2012-08-15 の記事]。)】
第6章は地球上に分布するものごとを地図表示すること。folium というパッケージをつかっている。本書を見たかぎりでは、メルカトル図法の地図にかぎられているようだ。ローカルな、たとえば東京都のような規模の地図をあつかうのならばよいと思う。しかし、世界地図をぬりわけるという応用では、グリーンランドが非常に大きく見える地図ではまずい。plotly というパッケージでは、地球儀上に点をうつような表示はできる。しかし、ぬりわけはできないらしい。地図上にデータを表示するには、本書にたよらず方法をさがすことが必要だ。【わたしは Cartopy というパッケージの利用をこころみている。】
第7章は文字情報の可視化だが、紹介された具体的な方法は word cloud だけだ。わかちがきされていない日本語の文章を語に分割して統計処理するくふうがある。しかし、その結果は、(デザインとしての価値はあるかもしれないが、情報伝達としては) 頻度の高い順の単語リストと同じ情報をわかりにくく表示したものにすぎないと思う。
第8章は「インフォグラフィック」とされていて、同じ図形(「ピクトグラム」とされている) をならべてその個数によって情報をつたえる方法。これも情報伝達としては棒グラフなどと同じだと思うが、こちらは図形のデザインをくふうするねうちがあることも多いと思う。
付録として、カラーパレットの紹介がある。定量的なデータについては、色相をだいたい固定して濃淡で表示するか、まんなかを無彩色、両側を赤系統と青系統にするかがよいとされている。定性的なデータについては、多くの色相をつかう例が紹介されている。人による色覚のちがいへの配慮はここでは明示されていない。
折りかえしのあとに くわしい目次をつける。
== 目次 ==
本書内容に関するお問い合わせについて
はじめに
本書の対象読者と必要な事前知識
本書の構成
本書のサンプルの動作環境とサンプルプログラムについて
CONTENTS
Chapter 1 データビジュアライゼーションとは
– 01 ビジュアライゼーションの定義
– 02 ビジュアライゼーションの歴史
– 03 身近なビジュアライゼーション
– 04 データビジュアライゼーションの機能と目的
– – データビジュアライゼーションの機能
– – データビジュラライゼーションの目的
– 05 意思決定におけるデータビジュアライゼーション
– – 意思決定の判断ツール
– 06 データビジュアライゼーションの意義
– – データの情報処理プロセス
– – 概念的なビジュアライゼーションとデータドリブンなビジュアライゼーション
– 07 データビジュアライゼーションのステップ
– – (1) データの着目点を考える
– – (2) データの収集・処理を行う
– – (3) 着目点に応じて適切なビジュアライゼーションを行う
– 08 静的なビジュアライゼーションと動的なビジュアライゼーション
– – 静的なビジュアライゼーション
– – 動的なビジュアライゼーション
– 09 Python でのデータ分析とビジュアライゼーション
– – Python での分析業務の拡大
Chapter 2 データビジュアライゼーションに必要な考え方
– 01 美しいビジュアライゼーションとは
– – シンプルに表現されている
– – コンテキストを含んでいる
– 02 データの種類とビジュアライゼーション表現
– 03 ビジュアライゼーションの構成要素
– – 色
– – 位置
– – 大きさ
– – 長さ
– – 形
– – 傾き・角度
– 04 データの表現におけるゲシュタルトの法則
– 05 ビジュアライゼーションで注意すべきこと
– – 読み手の負荷を考える
Chapter 3 本書で使用する環境について
– 01 Anaconda のインストール
– – Anaconda の環境の準備
– 02 Jupyter Notebook の利用
– – 新しいノートブックの作成
– – Python のコードを実行する
– 03 ライブラリのインストール
– 04 本書で動作する環境のまとめ
– – ライブラリのインストールのコマンド
– 05 仮想環境の構築 (参考)
– – 仮想環境へのライブラリなどのインストールのコマンド
Chapter 4 Pythonでのデータ取り扱いの基本
– 01 データ処理で使用するライブラリ
– 02 ビジュアライゼーションで使用するライブラリ
– 03 Python であつかうデータ構造
– – データ形式
– 04 基本的な操作
– – CSV ファイルを読み込む
– – 読み込んだデータを表示する
– 05 基本的な演算
– – 基本的な演算
– – 文字数を調べる
– 06 データフレームを扱う
– – 1行目の要素を取得する
– – 特定のカラムを取得する
– – データの行数を数える
– – データの集約をする
– – クロス集計を行う
– – 条件に該当したデータを抽出する
– – データの並べ替えを行う
– – カラム名の変更を行う
– – 繰り返しの処理をする
– – リストに対して繰り返しの処理を行う
Chapter 5 様々なグラフ・チャートによるビジュアライゼーション
– 01 グラフやチャートで利用するライブラリ
– 02 ヒストグラム
– – ヒストグラム
– – カウントプロット
– 03 ボックスプロット
– – ボックスプロットとは
– 04 散布図
– – 散布図とは
– 05 バブルチャート
– – バブルチャートとは
– 06 散布図行列
– – 散布図行列とは
– 07 ジョイントプロット
– – ジョイントプロットとは
– 08 質的変数のプロット
– 09 平行座標プロット
– – 平行座標プロttおとは
– 10 縦棒グラフ
– – 縦棒グラフとは
– – 複数の要素を並べて表示する
– – 縦棒グラフの1つの色を変更する
– 11 横棒グラフ
– – 横棒グラフ
– – 凡例の表示位置
– 12 円グラフ
– – 円グラフとは
– – 大きい順に並べて時計の12時の位置から始まる円グラフにする
– – 強調したい扇形だけ色を変える
– – plotly で円グラフを表示する
– 13 ドーナツグラフ
– – ドーナツグラフとは
– 14 折れ線グラフ
– – 折れ線グラフを描画する
– – 複数の折れ線グラフを1つのグラフ内に描画する
– – 複数の折れ線グラフの線の種類を同じにする
– – 折れ線グラフのうち1つを強調する
– – plotly で折れ線グラフを描画する
– – plotly で複数の折れ線グラフを描画する
– 15 ヒートマップ
– – ヒートマップとは
– 16 ウォーターフォールチャート
– – ウォーターフォールチャートとは
– 17 ツリーマップ
– – ツリーマップとは
– 18 サンバーストチャート
– – サンバーストチャートとは
– – サンバーツトチャートを描画する
– 19 レーダーチャート
– – レーダーチャートとは
– – 1つのレーダーチャートを描画する
– – 複数のレーダーチャートを重ねて描画する
Chapter 6 位置情報のビジュアライゼーション
– 01 位置情報のビジュアライゼーション
– – 地図のビジュアレイゼーションの種類
– 02 地図情報のビジュアレイゼーションに用いるライブラリ
– – plotly と folium
– 03 世界地図の色分けマップ
– 04 日本地図の色分けマップ
– – 都道府県別の情報
– 05 都道府県別の色分けマップ
– 06 地図のポイント情報を表示する
– – 1地点にマーカーを描画する
– – 1つの地図に複数のマーカーを描画する
– 07 地図上に異なる大きさの円を描画する
– 08 地図上にヒートマップを描画する
– 09 マーカーのアイコンを変更する
– 10 2地点間を線で繋ぐ
– – 2地点間を線で繋ぐ意味
– – 2地点間に線を引く
– – 複数の地点間の線を引く
Chapter 7 文字情報のビジュアライゼーション
– 01 ワードクラウドの描画
– 02 文字情報のビジュアレイゼーションに用いるライブラリ
– – wordcloud
– – janome
– 03 英語の文字情報のワードクラウド
– 04 日本語の文字情報のビジュアライゼーション
– 05 日本語のワードクラウド
– – 名詞だけを描画する
– 06 ワードクラウドの形を変える
– – 画像を用意する
– 07 特定の文字の色を指定する
Chapter 8 インフォグラフィックのビジュアライゼーション
– 01 インフォグラフィックとは
– 02 ピクトグラム
– – ピクトグラムとは
– – 使用するピクトグラム
– 03 画像を並べる際の表現方法
– – 並べ方のルール
– 04 インフォグラフィックで用いるライブラリ
– – 画像を扱うライブラリ
– 05 画像の大きさで数量を表現する
– – 数量に応じて画像の大きさを変える
– 06 並べる個数で数量を表現する
– 07 割合を画像で表現する
– – 割合を1つの画像の色塗りで表現する
– – 割合を複数の画像の色の違いで表現する
– 08 縦棒グラフのように画像を並べる
– – クラスの定義
– – 画像を利用した縦棒グラフの描画
Appendix データビジュアライゼーションにおけるカラーパレット
– 01 色の考え方
– 02 seaborn のカラーパレット
– – 質的変数のビジュアライゼーションに適したカラーパレット
– – 量的変数のビジュアライゼーションに適したカラーパレット
– – 無彩色のカラーパレット
– – 基準値の前後に値が分布している場合に適したカラーパレット
– – カラーパレットの作り方
INDEX
おわりに
謝辞
参考文献
著者プロフィール