matplot の色をラベルで固定する方法

色の確認

import matplotlib as mpl
import matplotlib.pyplot as plt

def plot_colorMaps(cmap):

    fig, ax = plt.subplots(figsize=(4,0.4))
    col_map = plt.get_cmap(cmap)
    mpl.colorbar.ColorbarBase(ax, cmap=col_map, orientation = 'horizontal')

    plt.show()

for cmap_id in plt.colormaps():
    print(cmap_id)
    plot_colorMaps(cmap_id)

stackoverflow.com

色の固定

N = len(label)

cmap = plt.cm.spectral
# extract all colors from the .jet map
np.random.seed(seed=32)
clist = [cmap(np.random.randint(0, cmap.N)) for i in range(N)]

固定の色でplot

  • 平均の上位5項目をplot
for idx in range(len(X)):
    plt.figure(figsize=(12,4))
    for i in np.argsort(X[idx].mean(axis=0))[::-1][:5]:
        plt.plot(X[idx][:, i], label=label[i], color=clist[i])
    plt.legend(loc='upper right')
    plt.title(NAME_MAP[LABEL_MAP[idx]])
    plt.show()

Plotly のセットアップで詰まった所

seaborn の stack の barplot が難しいので、Plotly で実施するように変更した。settings に手こずったので tips のURL を掲載。

stackoverflow.com

stackoverflow.com

{0..10}の10を他のコマンドから取得する方法

shell でディレクトリの階層分の for 文を回す時、for i in {0..$(hogehoge)}; do echo $i; done すると、{0..10}とかがechoされて意図と異なる挙動をした。 ので、メモ。

for i in $(seq 0 $(find . -type d -printf '%d\n' | sort -rn | head -1)); do echo $i ; done

unix.stackexchange.com

https://www.linux.com/tutorials/all-about-curly-braces-bash/