Interactive Network Visualization using Python 〜 NetworkX + BokehでPEPの参照関係を可視化する

By Tomoko FURUKI

Elevator Pitch

SNSの友達関係や論文の引用関係など、世の中には何かと何かの「つながり」の構造がたくさん存在します。このようなグラフ構造(ネットワーク構造)を可視化するライブラリやツールは各種ありますが、普段Python を使っている立場からすると、データ取得・前処理から可視化・公開まで、全ての工程をPythonで一気通貫できると嬉しいものです。
本セッションでは、Pythonでグラフ構造のインタラクティブな可視化を実現する手段のひとつとして、NetworkXとBokehを組み合わせる方法を紹介します。題材としてPEP(Python Enhancement Proposal)の参照関係を扱います。

Description

目的 :このセッションを聞くと何が得られるの?

  • Pythonでグラフ構造のインタラクティブな可視化を実現する手段のひとつとして、NetworkXとBokehを組み合わせる方法を紹介します。

動機:なぜ、この発表をするの?

  • SNSの友達関係や論文の引用関係など、世の中には何かと何かの「つながり」の構造がたくさん存在します。このようなグラフ構造(ネットワーク構造)を可視化するライブラリやツールは各種ありますが、普段Python を使っている立場からすると、前処理から可視化までPythonで一気通貫できると嬉しいものです。
  • Pythonでグラフ構造を扱えるライブラリ・NetworkXは、昨年2017年に約7年ぶりのメジャーバージョンアップをしましたが、現在市販されている書籍では最新バージョンを扱った紹介例があまりありません。
  • また、インタラクティブな可視化ライブラリであるBokehは、昨年リリースされたバージョン0.12.7でグラフ構造をサポートするようになりましたが、これも公式サイト以外になかなか日本語の情報がない状況です。
  • 本セッションでは、NetworkXとBokehを使った可視化のノウハウをコードを交えながら共有します。

アウトプット: 具体的に、どんなものが作れるようになるの?

NetworkXとBokehを組み合わせることで、以下のようなWebページを作れるようになります。
DEMO(動画)
※ 画面は2018年1月時点のプロト作成中の画面であり、実際のセッションで紹介する最新版とは異なる可能性があります。

Notes

  • talk: 日本語
  • slide: 日本語, 英語併記