Plotlyはとても便利だが,Seaborncolor_paletteのように柔軟に色指定ができない.そこで,Plotlyのcolor引数として使用可能なRGB値を,Seabornのcolor_paletteから取得するラッパー関数を作成した.

Plotly

Plotlyはインタラクティブで美麗なグラフ描画に強みを持つライブラリ.PythonR,あるいはJavaScriptから呼び出して使える.私はJupyter Notebook上で作図したグラフをグリグリ動かしてドヤることが多いので,この記事ではPythonからの利用を前提とする1

pipでインストールする場合はpip install plotlyCondaでインストールする場合はconda install -c plotly plotly

Seaborn

Seabornは,matplotlibをベースとしたグラフ描画ライブラリ.color_palette(palette, n_colors)で,特定のpaletten_colors個の色リストを直感的に取得できる.Plotlyでこれを使いたい.

seaborn

pipでインストールする場合はpip install seabornCondaでインストールする場合はconda install -c anaconda seaborn

Plotlyにおける色指定

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

input output

そこで,Seabornライクに色を指定するための関数を作成した.

作成した関数

関数の内部でsns.color_paletteを呼び出し,RGB値を取得している.ただし,Plotly用のフォーマットrgb({}, {}, {})に変換している.

実験

こちらのJupyter notebookで実験してみた.15パターンの凡例を折れ線グラフで表示する.

ライブラリのインポート

データセット生成

15種類のランダムな100点からなるサンプルを作成する.

Plotlyで素直にプロット