🐼

[pandas_bokeh]Pythonのグラフを簡単にカッコよく

2022/07/12に公開

はじめに

PythonのPandasデータフレームから直接グラフを描画するということも時折あるかと思いますが正直あまり格好の良いデザインとは言えません(データ分析に格好良さが必要なのかはさて置き)。
一方、最近では綺麗なグラフを描くためのPythonライブラリが登場しているとはいえ、記法を覚えるに至らず上手く使いこなせていないということもあるかと思います。

そんな時、pandas_bokehが役に立つかもしれません。pandasでのグラフ描画にちょっとだけ記述を加えるだけでかなりグラフの質感がアップするライブラリとなっています。

pandas_bokeh

ドキュメント
https://github.com/PatrikHlobil/Pandas-Bokeh

可視化ライブラリbokehをいい具合に呼び出している、といった感じでしょうか。
https://bokeh.org/


準備

インストール

pip install pandas_bokeh

いくつかのお約束を実行するだけでグラフが綺麗になります。

  • pandas_bokehよりも先にpandasをインポートすること
    ...と書いているように見えるのですが、順番逆でも動くような・・・(詳細未検証)
import pandas as pd
import pandas_bokeh
  • その後、下記のコードを一度実行する(notebookの場合)
pandas_bokeh.output_notebook()

可視化

サンプルデータを用意します。

import seaborn as sns
iris = sns.load_dataset('iris')
iris.head()
index sepal_length sepal_width petal_length petal_width species
0 5.1 3.5 1.4 0.2 setosa
1 4.9 3.0 1.4 0.2 setosa
2 4.7 3.2 1.3 0.2 setosa
3 4.6 3.1 1.5 0.2 setosa
4 5.0 3.6 1.4 0.2 setosa

線グラフ(pandas)

いつも通りpandasでの描画です。

iris.plot()

線グラフ(pandas_bokeh)

メソッドを.plot_bokeh()に置き換えると...

iris.plot_bokeh()

静止画で伝えるのが難しいですが、マウスの動きに合わせて動くインタラクティブなグラフになっています。

そのほかの描画

ステップ図

iris.plot_bokeh.step()

点図

iris.plot_bokeh.point()

散布図

iris.plot_bokeh.scatter(x="sepal_length", y = "sepal_width")

ヒストグラム

iris.plot_bokeh.hist()

エリア図

iris.plot_bokeh.area()


おわりに

他にも様々ありますし、オプションも使いこなせばかなりの表現力になるのではないでしょうか。
個人的には、pandasのグラフ描画にちょっとつけ加えるだけでいい、という利便性が気に入っています。

Discussion