PlotlyでSeabornライクに色指定する
Plotlyはとても便利だが,Seabornのcolor_paletteのように柔軟に色指定ができない.そこで,Plotlyのcolor引数として使用可能なRGB値を,Seabornのcolor_paletteから取得するラッパー関数を作成した.
Plotly
Plotlyはインタラクティブで美麗なグラフ描画に強みを持つライブラリ.Python,R,あるいはJavaScriptから呼び出して使える.私はJupyter Notebook上で作図したグラフをグリグリ動かしてドヤることが多いので,この記事ではPythonからの利用を前提とする1.
pipでインストールする場合はpip install plotly.Condaでインストールする場合はconda install -c plotly plotly.
Seaborn
Seabornは,matplotlibをベースとしたグラフ描画ライブラリ.color_palette(palette, n_colors)で,特定のpaletteのn_colors個の色リストを直感的に取得できる.Plotlyでこれを使いたい.

pipでインストールする場合はpip install seaborn.Condaでインストールする場合はconda install -c anaconda seaborn.
Plotlyにおける色指定
Plotlyでは,非常に色指定をし辛い23.colorlover - GitHubを使ってカラーパレット的なものを使うチュートリアルが公開されているが,パレットの種類が少ないし,interpで任意のスケールに拡張したときにムラが出たり,エラーがでたりする場合がある.あるいは,markerのcolorscaleでパレットを指定するチュートリアルも公開されているが,colorでサンプルごとにスケール値を指定する必要があり,凡例ごとに色を塗り分けるときなど,直感的なコーディングがしづらそう.

そこで,Seabornライクに色を指定するための関数を作成した.
作成した関数
関数の内部でsns.color_paletteを呼び出し,RGB値を取得している.ただし,Plotly用のフォーマットrgb({}, {}, {})に変換している.
実験
こちらのJupyter notebookで実験してみた.15パターンの凡例を折れ線グラフで表示する.
ライブラリのインポート
データセット生成
15種類のランダムな100点からなるサンプルを作成する.
Plotlyで素直にプロット
11種類以上の判例になると,色が衝突しているのがわかる.
PlotlyでSeabornライクにプロット
まずはhlsでプロットしてみる.
次はviridisでプロットしてみる.
最後にinfernoでプロットしてみる.
jet以外のMatplotlibのColormapを利用できる.
感想
これで,単なる折れ線グラフでもドヤれる.
Subscribe via RSS