どうも、月見(@Suzuka14144156)です。
この記事では、hvPlotの使い方・やり方を解説します。
このようなお悩みをお持ちの方におすすめの記事です。
- PandasのDataFrameからスムーズに可視化したい
- DataFrame.plot()以外の方法が知りたい
- インタラクティブなグラフが描きたい
本記事のゴール
- pandasのDataFrameから数行のコードで以下を表示する
hvPlotとは?
- pandasなどのデータからHoloViewというラッパーを介してグラフを可視化するライブラリ
参考:hvPlot
hvPlotの便利な点
- 数行のコードでpandasのDataFrameを可視化できる
- legends(凡例)も自動でつけてくれる
- 従来の方法だとplot()を使用する方が多いと思うが、グラフがインタラクティブでないので、分析しながら使うのは、使いにくい
- そこで、hvPlotはbokehを介して出力できるので、インタラクティブなグラフが出力できる
hvPlotのインストール
Anacondaを使用する場合
conda install -c pyviz hvplot
PyPLの場合
pip install hvplot
holoviewsは以下のコマンドでインストールできます。
pip install holoviews
hvPlotの例
今回は、米国の経済指標であるCPIと政策金利とビットコインの3つの価格を取得し、可視化する例で示します。
データを取得するのに、pandas_datareaderを使います。
インストール方法は以下です。
pip install pandas_datareader
では、本題のコードへ。
import pandas as pd
from pandas_datareader import data as pdr
import datetime
#チャートの取得
tickers = ['CBBTCUSD','CPIAUCNS','FEDFUNDS']
#取得開始日を入力
start = "2021-01-02"
#取得終了日を入力
end = datetime.date.today()
#経済指標を取得
data = pdr.DataReader(tickers, 'fred', start, end)
#月足に変換
data_m = data.resample("M").mean()
#規格化(グラフを見やすくするため)
data_m_norm = (data_m - data_m.min()) / (data_m.max() - data_m.min())
これでデータ取得できます。
この三つのデータをhvPlotを使って可視化します。
import hvplot.pandas
g = data_m_norm.hvplot.line()
g
出力結果は、以下です。
hvPlotの出力方法の変更
- hvPlotを使うことで、matplotlib、bokeh、plotlyから容易に出力方法を選択できる
bokeh
import hvplot.pandas
g = data_m_norm.hvplot.line()
g
出力結果は、上記で示した通り。
matplotlib
import hvplot.pandas
hv.extension('matplotlib')
g = data_m_norm.hvplot.line()
g
x軸の文字がつぶれて醜いです。
少々調整が必要そうです。
今回は、面倒なので対応しませんが、このことから、bokehを使う方が良さそう。
plotly
import hvplot.pandas
hv.extension('plotly')
g = data_m_norm.hvplot.line()
g
データ近傍にマウスのポインタを近づけると、データが表示されるのがbokehと違うところ。
私は、よくplotlyを使います。
hvPlotの出力の保存
保存は、以下のコードでHTML形式で保存できます。
renderer = hv.renderer('bokeh')
renderer.save(g, 'graph')
本記事の関連の参考書や講座
基本的なPythonのコード知識を学ぶには、以下の書物がオススメです。
Udemyのオンライン講座は、以下がオススメです。
Udemyは買い切りなので、一度購入してしまえば、何度でも閲覧できるのでオススメです。
現役シリコンバレーエンジニアが教えるPython 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイル
現役シリコンバレーエンジニアが教えるPython入門!応用では、データ解析、データーベース、ネットワーク、暗号化、並列化、テスト、インフラ自動化、キューイングシステム、非同期処理など盛り沢山の内容です!
hvPlotに関する一般的な使い方の詳細は、以下の記事でも解説しています。
まとめ
この記事では、hvPlotの使い方・やり方を解説について解説しました。
hvPlotの便利な点をまとめると以下です。
- 数行のコードでpandasのDataFrameを可視化できる
- legends(凡例)も自動でつけてくれる
- 従来の方法だとplot()を使用する方が多いと思うが、グラフがインタラクティブでないので、分析しながら使うのは、使いにくい
- そこで、hvPlotはbokehを介して出力できるので、インタラクティブなグラフが出力できる
コメント