データの可視化
Pythonのデータ可視化
データの可視化のためのライブラリがたくさんある。
Matplotlibが昔から有名で、そのラッパーライブラリがSeabornらしい。
使い方を眺めてみても、どうも使いづらい。
pandasのDataFrameのメソッドにplot()があり,こちらもMatplotlibをラッパーしているらしい。
#Seaborn
sns.jointplot(x='xdata', y='ydata', data=df)
#pandasのplot
df.plot.scatter(x='xdata', y='ydata')
直感的に後者の方が分かりやすいと思いつつ、パラメーターが増えたり、複雑なグラフはエクセルに逃げていたりしました。。。
Plotlyの登場
Plotyと呼ばれるデータ可視化ツールが最近の流行らしい。
PlotlyのラッパーがPlotly Expressと呼ばれている。
seabornとほぼ同等の機能を有していて、かつインタラクティブな操作ができるのが特徴らしい。
例えば、seabornで箱ひげ図を表示してみる。
コードは以下の通り。
import seaborn as sns
import matplotlib.pyplot as plt
#アヤメデータの読み込み
iris = sns.load_dataset('iris')
%matplotlib inlinefig, ax = plt.subplots(figsize=(8,3))
sns.boxplot(x='sepal_length', y='species', data=iris, order=('setosa', 'versicolor', 'virginica'), ax=ax)
ax.set_title('品種毎のがく片の長さの箱ひげ図(cm)')
plt.show()
これでも、十分に簡潔なコードで記述できている。
Plotly Expressでは、こんな感じ。
見た目もキレイなのですが、マウスを近づけると詳細データが表示されたり、表示範囲を変更できます。
実際のコードはというと、seabornとそれほど変わらない。
#データのロード
import seaborn as sns
iris = sns.load_dataset('iris')
import plotly.express as px
fig = px.box(iris, y='species', x='sepal_length', color='species', orientation='h',
category_orders={'species': ['setosa', 'versicolor', 'virginica']},
title='品種毎のがく片の長さの箱ひげ図(cm)', width=600, height=400)
fig.show()
こんな本もあり、Dashというフレームワークを使えば、Webアプリも作れるようです。
もう少しPlotly Expressの使い方を調べて、ログなどの閲覧・分析に使えるようにしてみたいと思います。
つ・づ・く