【Python】Plotlyでぐりぐり動かせるグラフを作る

こちらを参考に。

動作環境
OS : Windows7 64bit
python : 2.7.13(64bit) ※Anaconda2でインストール
spyder : 3.1.2 ※Anaconda2でインストール
plotly : 2.0.12

1. plotlyのインストール

pip install plotlyでインストールしろと書いてある。pipってなにというところから躓いた(ド素人)。
pipとはPythonのパッケージ管理システムらしい。細かいことは置いておいてインストールしたい。
結論としては、Anaconda promptを起動し、そこでpip install plotlyを実行すればよい。勝手にインストールして使えるようにしてくれる。

2.グラフ用のデータを準備する
練習用のデータを用意する。
以下のデータを”birth.csv”という名前にして、pythonの実行ファイル(*.py)と同じ場所に保存する。


year,births,birth rate
2000,1190547,1.36
2001,1170662,1.33
2002,1153855,1.32
2003,1123610,1.29
2004,1110721,1.29
2005,1062530,1.26
2006,1092674,1.32
2007,1089818,1.34
2008,1091156,1.37
2009,1070035,1.37
2010,1071304,1.39
2011,1050806,1.39
2012,1037101,1.41
2013,1029816,1.43
2014,1003532,1.42
2015,1005656,1.46

3. 実際にグラフを作成してみる
先ほどの”birth.csv”を使って、グラフを作成するコードを書いてみる。


#データの読み込み
import pandas as pd
raw = pd.read_csv("birth.csv")

#グラフの初期化
import plotly
plotly.offline.init_notebook_mode(connected=False)

#プロットするデータの指定
data = [
plotly.graph_objs.Bar(x=raw[“year”], y=raw[“births”], name=”Births”),
plotly.graph_objs.Scatter(x=raw[“year”], y=raw[“birth rate”], name=”Birth Rate”, yaxis=”y2″)
]

#グラフレイアウトの指定
layout = plotly.graph_objs.Layout(
title=”Births and Birth Rate in Japan”,
legend={“x”:0.8, “y”:0.1},
xaxis={“title”:”Year”},
yaxis={“title”:”Births”},
yaxis2={“title”:”Birth Rate”, “overlaying”:”y”, “side”:”right”},
)

#プロット
fig = plotly.graph_objs.Figure(data=data, layout=layout)
plotly.offline.plot(fig) #htmlで出力する場合

 

4.実行結果
“temp-plot.html”というファイルが自動生成されてWebブラウザ上に表示される。
実際のグラフはこんな感じ。