Pythonを使ってグラフを書く際、一番始めに思いつくライブラリーは、matplotlibではないでしょうか。
matplotlibはグラフを書くのにとてもパワフルなライブラリーですが、静的なグラフを表示することが主要な使い方で、インタラクティブに表示を変えることはできません。
インタラクティブは、相互の作用という意味ですが、ユーザの要求に応じて、プログラム側が処理内容や表示を変えることを意味しています。
そんな痒いところに手が届く、ライブラリーがあります。
それが、plotlyです。
plotlyは、pythonで使える、インタラクティブなグラフを書くことができるライブラリーです。
plotlyはpythonだけでなくjavascriptでも利用できる、パワフルなライブラリーです。
Python3をお使いの方であれば、ライブラリー管理プログラムのpipを使って簡単にインストールすることができます。
この記事では、plotlyのインストールの仕方から、グラフの書き方をご紹介します。
もくじ
多くの方がpython3を使っているかと思います。
そんな方であれば、pipというプログラムが標準でインストールされており、pipを使うことでpython関連のライブラリーを自由に導入(インストール / バージョンアップ / アンインストール) することができます。
pipを使ってライブラリーをインストール
それでは、pipを使って、plotlyライブラリーをインストールしていきましょう。
最新バージョンを導入したい場合は、コマンドプロンプト(もしくはターミナル)を立ち上げて、下記のコマンドを実行してみてください。
python -m pip install -U plotly
pipの使い方ももっと知りたい方は、記事「簡単にPythonライブラリーをインストールしようぜ!」をご覧ください。
まずは、棒グラフ(Bar)を書いてみましょう。
下記がサンプルプログラムです。
import pandas as pd
import plotly.graph_objects as go
#グラフ表示するデータ
pd_data = pd.DataFrame([ [3,4,5,3,2,2,2,2,3],[5,8,2,2,8,5,7,4,5],[4,1,8,1,3,1,3,1,4]], index=["1位", "2位", "3位"])
x = t_pd.index
d0 = go.Bar(
x=x,
y=pd_data.loc["1位"],
name='1着'
)
d1 = go.Bar(
x=x, # xの値
y=pd_data.loc["2位"],
name='2着'
)
d2 = go.Bar(
x=x,
y=pd_data.loc["3位"],
name='3着'
)
graph = [d0, d1, d2]
fig = go.Figure(data=graph)
fig.update_layout(title='グラフのタイトル')
fig.show()
plotlyを使った実行結果
下記が実行結果になります。
一見、matplotlibと同じようなグラフが表示されたかと思います。
しかし、凡軸の3着(グリーン)をクリックすると、1着と2着のみのグラフに変わります。
マウスで棒を選択すると、値がポップアップで表示されたりもしますので、ユーザフレンドリー(インタラクティブなグラフ)になっています。
matplotlibの場合、コード変更及びプログラムの再実行が必要でしたが、plotlyはライブラリー自体が私たちの代わりにグラフを変更してくれているのです。
また、ファイルの出力、グラフのズームなどもできますので、とても便利です。