物理の駅 Physics station by 現役研究者

テクノロジーは共有されてこそ栄える

Python matplotlib で ROOTの推奨カラーマップ kBird を使う

root.cern.ch

Better palettes like kBird are recommended.

と書かれているので使ってみよう。

import matplotlib

red_bird   = [ 0.2082, 0.0592, 0.0780, 0.0232, 0.1802, 0.5301, 0.8186, 0.9956, 0.9764]
green_bird = [ 0.1664, 0.3599, 0.5041, 0.6419, 0.7178, 0.7492, 0.7328, 0.7862, 0.9832]
blue_bird  = [ 0.5293, 0.8684, 0.8385, 0.7914, 0.6425, 0.4662, 0.3499, 0.1968, 0.0539]
cdict_bird = dict([(key,tuple([(i/8,val,val) for i,val in enumerate(eval(key+"_bird"))])) for key in ["red","green","blue"]])
cmap_bird = matplotlib.colors.LinearSegmentedColormap('bird', cdict_bird)
import matplotlib.pyplot as plt
plt.cm.get_cmap(cmap_bird)

グレースケールにしたとしても視認性は良いので、色覚にハンデキャップがある方にも見やすい。

なお、カラーパレットの数値はROOTのソースコードより拝借した

root.cern

matplotlibに実装されている標準のものだと viridis が一番近いが、黒側に感度の低い日本人にはROOTのカラーバーのほうが見やすい気がする

import matplotlib
matplotlib.colormaps.get_cmap("viridis")