Pythonと色

matplotlib の色については次のチュートリアルやレファレンスがあります:

簡単な例で説明します。例えば

import matplotlib.pyplot as plt

plt.plot([[1,2], [3,4]])

とすると,青とオレンジのグラフができます。もう一度 plt.plot([[1,2], [3,4]]) を打ち込むと,今度は緑と赤になります。これらの色は matplotlib のデフォルトのパレット tab10 から順にとっています。これは Tableau(タブロー)という有名な可視化ツールの Tableau 10 というカラーマップの旧版に基づいています:

#1f77b4 #ff7f0e #2ca02c #d62728 #9467bd
#8c564b #e377c2 #7f7f7f #bcbd22 #17becf

これらの値は次のようにして確認できます:

plt.rcParams['axes.prop_cycle']
cycler('color', ['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728', ...])

この中の色は color="C0" から color="C9" までで指定できます。

これらの色はどれも濃い色です。薄い色も使いたいなら,Choosing Colormaps in Matplotlib の tab10 のすぐ下にある tab20 というカラーマップを使います。

cmap = plt.get_cmap("tab20")

でこのカラーマップを取得し,濃い青は color=cmap(0),薄い青は color=cmap(1),濃いオレンジは color=cmap(2) などと指定します。

もし色をいつも黒にしたいなら,

from cycler import cycler
plt.rcParams['axes.prop_cycle'] = cycler(color=["black"])

あるいは現在のプロットの次の描画からの色を変えるなら,

plt.gca().set_prop_cycle(color=['black'])

とすればよさそうです。

Color Universal Design (CUD) に配慮した R の palette("Okabe-Ito") と同じにするには次のようにします:

plt.rcParams['axes.prop_cycle'] = cycler(
    color=["black", "#E69F00", "#56B4E9", "#009E73", "#F0E442",
           "#0072B2", "#D55E00", "#CC79A7", "#999999"])

なお、Okabe and Ito には最後の #999999gray60)がありません。

色のスタイルを変えるには次のようにします(Customizing Matplotlib with style sheets and rcParams 参照):

plt.style.use('ggplot')               # ggplot風
plt.style.use('seaborn-v0_8-colorblind')
plt.style.use('tableau-colorblind10')
plt.style.use('default')              # 元に戻す

スタイルの一覧は plt.style.available というリストに格納されています。個々のスタイルの実体は Matplotlib がインストールされたディレクトリ下の mpl-data/stylelib/*.mplstyle というファイルに書き込まれています。

R の 統計グラフの色 もご覧ください。

リンク