ISBN 9784254122589

Python インタラクティブ・データビジュアライゼーション入門 : Plotly/Dashによるデータ可視化とWebアプリ構築

Python インタラクティブ・データビジュアライゼーション入門 : Plotly/Dashによるデータ可視化とWebアプリ構築
出版社
朝倉書店
刊行
2020-12

概要

PlotlyとDashでインタラクティブなデータ可視化WebアプリをPythonだけで構築する

想定読者

データ分析の結果をインタラクティブなWebアプリとして公開・共有したいPythonエンジニアやデータサイエンティスト。統計・金融・バイオサイエンスなど専門分野でのデータ可視化ニーズを持つ実務者

こんな人には向いていない

  • Pythonの基本文法をまだ習得していない初学者。本書はライブラリの実践活用書であり、Python入門書の代替にはならない
  • matplotlibやseabornで静的グラフを出力できれば十分な用途の読者には、Dashのコールバック機構まで学ぶ必要はない
  • フロントエンド開発の知識(HTML/CSS/JavaScript)を活かして高度なカスタマイズを望む読者には、Plotly.jsや標準的なReactアプリ開発の方が適している

読了後にできるようになること

  • Plotly Expressを使って棒グラフ・散布図・ヒートマップ・地図・3Dグラフをコード数行で作成できる
  • plotly.pyの中級APIでサブプロット構成やアニメーション・カスタムレイアウトを実装できる
  • Dashでコールバックを組み込み、ドロップダウンやスライダーに連動して動的に更新されるWebダッシュボードを構築できる
  • Dash DataTableを活用してCSVエクスポートや列フィルタリングが可能なインタラクティブ表を実装できる
  • Dash Cytoscapeでネットワーク図を構築し、ノード間の関係をインタラクティブに探索できるアプリを作れる
  • 作成したDashアプリをHeroku・Azure・GCP等にデプロイして外部公開する手順を理解できる

本書のキー概念(章解説)

  • セットアップと環境構築 — Plotly・Dash・Jupyter Notebookの環境整備。GitHubのサンプルコードとあわせて最初に完了させる
  • 第 1 章 Plotly Expressによる可視化 — 散布図・棒グラフ・ヒートマップ・地図・3Dプロット・アニメーションをカバー。まず動くものを作る最速ルート
  • 第 2 章 plotly.pyの基礎 — Plotly Expressの裏側にあるAPIを理解する章。細かいカスタマイズが必要になったときの参照先
  • 第 3 章 plotly.pyによるグラフの種類 — 特殊グラフ・3D可視化まで網羅。必要なグラフ種別に応じて参照形式で活用できる
  • 第 4 章 plotly.pyの応用 — サブプロット・インタラクティブ機能の追加。Plotly単体で完結するリッチな可視化の上限を探る章
  • 第 5 章 Dash入門 — コンポーネント・スタイリング・コールバックの基本。Dashアプリ開発の出発点として最重要
  • 第 6 章 Dashレイアウト設計
  • 第 7 章 Dashコールバック機構 — 複数入出力・連鎖コールバックなど実務で必要なパターンを体系的に学べる章
  • 第 8 章 Dash標準コンポーネント — DataTableのフィルタリング・CSV出力は現場で頻繁に必要になる機能
  • 第 9 章 Dash追加コンポーネント — Canvas・Bio・DAQなど専門分野向けコンポーネント。バイオサイエンス・計測系の読者に特に有用
  • 第 10 章 Dash Cytoscapeによるネットワーク可視化 — ネットワーク図特化ライブラリ。感染連鎖や組織図など関係データの可視化に実績あり
  • 第 11 章 Dash Cytoscapeの応用

ハイライト

  • コールバック、アニメーションなどの機能で、大規模データでも特徴把握が簡単に。統計、金融、バイオサイエンスなどさまざまな専門分野に活用可能なパッケージ(本書が特定ドメインに閉じず横断的に使えることを示す記述。購入判断の対象読者が広いことを裏付ける)
  • グラフ(棒グラフ、散布図、ヒートマップ)や表、地図、ネットワーク図など、簡潔なコードですばやく可視化。作成した可視化データはWebサイトで公開でき、誰でも操作しながら閲覧可能(Plotlyによる多種グラフ生成とDashによるWeb公開という本書のコアバリューが一文で示されている箇所)

外部からの言及

  • Plotly / Plotly Expressは令和時代のPython作図ライブラリのデファクトスタンダードとして位置付けられており、matplotlibやseabornと比較してインタラクティブな探索機能が優れているという評価がQiita上で複数の記事から確認できる(qiita)
  • DashはFlask・React・Plotlyを統合したWebアプリフレームワークとして紹介され、HTMLやJavaScriptを書かずにPythonだけでインタラクティブなダッシュボードが構築できる点がデータサイエンティスト向け記事で繰り返し強調されている。コールバック機構を理解するまでの学習コストは複数の段階別チュートリアルによって補われている(qiita)
  • 大規模データをPlotlyで直接描画すると動作が重くなる問題は実務で発生しており、plotly-resamplerのような補完ライブラリと組み合わせるパターンが2023年時点で注目されている。本書が執筆時点(2020年)以降もエコシステムが活発に発展していることを示すシグナル(qiita)

編集メモ

著者(@driller・@OgawaHideyuki)によるPlotly/Dash解説Qiita記事4本・合計likes 759、うち1本が本書を明示参照。Plotly/Dashエコシステム全体では関連8記事・合計likes 2161(~2023年時点)。著者が第一線の実務家かつ技術コミュニティで継続的に発信しており、書籍との連動性が確認できる

読む前に押さえておきたいこと

  • Python基本文法(リスト・辞書・関数・クラスの概念)
  • pandas DataFrameの基本操作(データ読み込み・フィルタリング・集計)への慣れ
  • Jupyter NotebookまたはJupyter Lab環境でのPythonコード実行経験

学習のコツ

  • 1章(Plotly Express)を一通り動かして対話的グラフの感触を掴んでから5章(Dash入門)に進むと、コールバックの必要性が自然に理解できる
  • 2・3章は辞書的リファレンスとして使うのが効率的。最初から全部通読するより、必要なグラフ種別が出てきたときに開く運用が向いている
  • GitHubで公開されているサンプルコードを手元で動かしながら読み進めることを強く推奨。可視化は手を動かして変化を見ることで理解が定着する
  • Dashのコールバック(7章)は本書で最も習得に時間がかかる箇所。5章で基本コールバックを十分に動かしてから7章の複雑な例に進むと理解がスムーズになる
  • 付録のデプロイ手順(Heroku・Azure・GCP)はまずローカルで動作確認を完結させてから読むとつまずきポイントが減る
出版社による内容紹介

Webサイトで公開できる対話的・探索的(読み手が自由に動かせる)可視化をPythonで実践.データ解析に便利なPlotly,アプリ化のためのユーザインタフェースを作成できるDash,ネットワーク図に強いDash Cytoscapeを具体的に解説。 【編集部より】 グラフ(棒グラフ,散布図,ヒートマップ・・・)や表,地図,ネットワーク図など,簡潔なコードですばやく可視化 ●コールバック,アニメーションなどの機能で,大規模データでも特徴把握が簡単に ●統計,金融,バイオサイエンスなどさまざまな専門分野に活用可能なパッケージ ●作成した可視化データは Web サイトで公開でき,誰でも操作しながら閲覧可能

この本がどの学習段階で役立つかは、 関連する ロードマップ から確認できます。

質問に答えるだけで、
あなたに合う専門書が見つかる

IT・デザイン・士業・医療・経理・教育・研究 ほか、あらゆる分野の専門書と 「読む順序」(学習ロードマップ)を収録。何を選べばいいか分からなくても、 いくつかの質問に答えるだけでたどり着けます。