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