Open1
Matplotlibのカラーマップを特定範囲に適用して使う方法
Matplotlibのカラーマップを特定範囲に適用して使う方法
cmapの端の色の濃い部分をFigの色として使いたくないときなどに、カラーマップの端の濃い部分を除外する方法である。
実装
例えば1/6から5/6部分のみを使いたい時には、以下のように設定する。
import matplotlib.pyplot as plt
import matplotlib.colors as colors
# データの生成
data = [...]
# カラーマップの作成
cmap = plt.cm.RdBu
# カラーマップの1/6から5/6部分を抽出
colors_ajust = cmap(np.linspace(1/6, 5/6, cmap.N))
cmap_middle = colors.LinearSegmentedColormap.from_list("RdBu_ajust", colors_ajust)
# プロットの作成
plt.imshow(data, cmap=cmap_ajust)
plt.show()
プロット例
例えば
デフォルトのままだとこの様になってしまう図も
カラーマップを調整すれば少し見やすくなる(人による)