Python+jupyter+plotlyでインタラクティブなグラフを書いてみた
Abstract
jupyter notebook上でPlotlyというグラフライブラリを使い、3次元データをインタラクティブに可視化してみました。
Introduction
Pythonでグラフライブラリと言うと、真っ先に出てくるのがmatplotlib。 ただやはり、グラフを描画することに特化しているのか、プロットしたものをズームするとかマウスオーバーで値を表示とかがサクッとはできないみたい。 そんな中で、Plotlyという良さげなライブラリを見つけたので試してみた。
Setup and Results
Plotlyのインストール。
pip install plotly
プロットする内容
プロットする関数自体は、以前の記事と全く同じ。 あと折角なので、自作したfloat拡張range関数も使ってみた。
コード
import math from plotly.offline import iplot, init_notebook_mode import plotly.graph_objs as go init_notebook_mode(connected=True) x = [_x for _x in drange(0, math.pi, math.pi/100)] y = [_y for _y in drange(0, math.pi, math.pi/100)] z = [] for _y in y: z.append([]) for _x in x: z[-1].append(math.sin(3*_x) * math.sin(2*_y)) data = [ go.Heatmap( x=x, y=y, z=z, colorscale='jet', ) ] iplot(data)
実行結果
カーソル位置のデータ値を表示したり、ズームやオートスケールがブラウザ上のUI操作で可能。
Conclusion
jupyter上で使うなら、matplotlibよりこちらのほうが好みかも。デモもいろいろあるようなので、そのうち試してみようと思います。