hvplot.pandasは、グラフを描くときに非常に楽ですが、色とか線種の微調整がやりにくいです。 基本的なやりかたをまとめておきます。
サンプルデータ
import pandas as pd import numpy as np import hvplot.pandas
A = np.array([ np.random.rand(10) ,2.0*np.random.rand(10) ,3.0*np.random.rand(10) ,np.random.rand(10) ,2.0*np.random.rand(10) ,3.0*np.random.rand(10) ]) df = pd.DataFrame(A.T,columns=list('ABCabc'))
df
A | B | C | a | b | c | |
---|---|---|---|---|---|---|
0 | 0.839846 | 0.178719 | 2.426310 | 0.448385 | 0.036648 | 1.884106 |
1 | 0.557206 | 1.973751 | 2.482765 | 0.472132 | 0.724756 | 1.349259 |
2 | 0.701078 | 0.749980 | 1.694523 | 0.812625 | 1.812889 | 1.349791 |
3 | 0.743109 | 1.199193 | 0.223709 | 0.241240 | 1.509261 | 0.358296 |
4 | 0.205094 | 0.547682 | 2.509258 | 0.246653 | 1.930729 | 2.507506 |
5 | 0.360548 | 0.437713 | 2.750295 | 0.031400 | 0.332188 | 2.121233 |
6 | 0.277073 | 1.152197 | 2.312182 | 0.126500 | 1.696099 | 1.832673 |
7 | 0.222868 | 0.034139 | 1.872011 | 0.821512 | 0.761097 | 2.447947 |
8 | 0.706169 | 0.908931 | 0.113971 | 0.452582 | 1.491507 | 0.244218 |
9 | 0.343868 | 1.208215 | 0.929931 | 0.795339 | 1.577169 | 2.354490 |
普通にグラフを描く
自動的に色が振られてきれいに描かれます。
df.hvplot()
調整
以下のように調整する場合のコードです。
- Aとa、Bとb、Cとcを同じ色にする。
- A、B、Cは普通の線、a、b、cは破線にする。
オプションにリストで指定するだけです。 リストがグラフ系列の要素数以下の場合は繰り返されます。
c = ['blue','red','orange'] ld = ['solid']*3 + ['dashed']*3 df.hvplot(color=c, line_dash=ld)
おまけ:色をcolormapから取得する。
holoviewsには様々なカラーマップが準備されています。
Colormaps — HoloViews 1.14.5 documentation
このカラーマップを使った色の設定方法です。 今回は、holoviewsの標準のカラーマップである"glasbey_hv"を使いました。
from holoviews.plotting.util import process_cmap cmap_list = process_cmap("glasbey_hv")
len(cmap_list)
256
df.hvplot(color=cmap_list[:3], line_dash=ld)
参考サイト
- Colormaps — HoloViews 1.14.5 documentation
- styling - How do I colour the individual categories in a holoviews Sankey diagram? - Stack Overflow