より良いエンジニアを目指して

1日1つ。良くなる!上手くなる!

HoloViewsを通してBokehの見栄えのよさに気づく

Pythonの可視化ツールはHoloViewsが標準になるかもしれない - Qiita

Welcome to Bokeh — Bokeh 1.0.4 documentation

HoloViewもBokehも使ってみたかったのですが、なかなか時間がありませんでした。

Bokehについても覚えないとならないのか、そんなにライブラリが多いとついていけないよ、と。

そこで、HoloViewを通して使ってみることにしました。

HoloViewはグラフ可視のラッパーライブラリであるため、matplotlibもBokehも同じプログラムで動すことができます。

matplotlibとBokehを比べるのにうってつけです。

import holoviews as hv

hv.extension('bokeh')

curve_marquez = hv.Curve((marquez['Lap'],marquez['LapTime']),label='Marquez')
curve_clutchlow = hv.Curve((clutchlow['Lap'],clutchlow['LapTime']),label='ClutchLow')
curve_lins = hv.Curve((lins['Lap'],lins['LapTime']),label='Lins')
curve_zarco = hv.Curve((zarco['Lap'],zarco['LapTime']),label='Zarco')

(curve_marquez * curve_clutchlow * curve_lins * curve_zarco)

これを、

hv.extension('matplotlib')

(curve_marquez * curve_clutchlow * curve_lins * curve_zarco)

とするだけで同じように表示できます。

f:id:rimever:20190124224840p:plain

先にBokehを表示すると、私個人としてはぶっちゃけmatplotlibがダサく見えました。

下記の記事でいい質問をされている方がいて、細かいところにどこまで届くかは気になるところです。

qiita.com

サイズの指定は?

options関数を用います。

import holoviews as hv

hv.extension('bokeh')

curve_marquez = hv.Curve((marquez['Lap'],marquez['LapTime']),label='Marquez')
curve_clutchlow = hv.Curve((clutchlow['Lap'],clutchlow['LapTime']),label='ClutchLow')
curve_lins = hv.Curve((lins['Lap'],lins['LapTime']),label='Lins')
curve_zarco = hv.Curve((zarco['Lap'],zarco['LapTime']),label='Zarco')

# options関数で指定
(curve_marquez * curve_clutchlow * curve_lins * curve_zarco).options(width=900,height=600)

Plotlyはサポートされていない?

私が試したときはPlotlyについては、実験段階で現在はサポートされてないようです。

f:id:rimever:20190124225744p:plain

ともあれ、Bokehについては使っていきたいなというのが今回試してみた私の感想です。