趣味で計算流砂水理 Computational Sediment Hydraulics for Fun Learning

数値計算とか河川工学とかプログラミングのことを書いています

MENU

備忘録:hvplot.pandasでcolorやline_dashを調整する

スポンサーリンク

 

 

 

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()

f:id:SedimentHydraulics:20211204133850p:plain

調整

以下のように調整する場合のコードです。

  • 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)

f:id:SedimentHydraulics:20211204133906p:plain

おまけ:色を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)

f:id:SedimentHydraulics:20211204133917p:plain

参考サイト

関連記事

computational-sediment-hyd.hatenablog.jp