matplotlibには色覚異常向けのスタイル tableau-colorblind10
が存在する。名前の通りTableau由来のカラーパレットである。
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(-5, 15, 0.01)
ys = [1 / (np.exp(-x + i) + 1) for i in range(10)]
plt.style.use('tableau-colorblind10')
for y in ys:
plt.plot(x, y);
比較のため、デフォルトのスタイルは以下である。こちらはTableauの古いカラーパレットと同じ配色である。
plt.style.use('default')
for y in ys:
plt.plot(x, y);
また色覚異常向けのカラーマップ cividis
も存在する。ただ濃淡二色のグラデーションなので敢えてカラーにする理由がなく、グレースケールを選択した方がよいように思える。
fig, ax = plt.subplots()
pcm = ax.pcolormesh(np.random.rand(32,32), cmap='cividis')
fig.colorbar(pcm)
これらのスタイルはv2.2で導入されており、この記事の投稿時点(2022年)で既に4年くらい存在しているが、あまり周知されていないようだ。
3色色覚の人間にも見づらくはない配色だと思うので、フルカラーでなければならない場合を除けば普段遣いで問題ない気がする。
なお、第一色と第二色はデフォルトと同じである。このあたりは元のカラーパレットの時点で配慮されているようだ。