Скажем, я хочу отличить NaN в цветовой палитре matplotlib. Тогда:Маска двух групп значений в цветовой палитре matlotlib с постепенной схемой цветов
import numpy as np
import matplotlib.pyplot as plt
import matplotlib
# create a (4,5) matrix with values ranging from 0 to 19
np_data = np.arange(20).reshape((4,5)).astype(float)
# add a row with NaNs in the middle
np_data = np.insert(np_data,2,[np.nan for x in range(0,5)],axis=0)
# mask invalid data (NaNs)
np_data = np.ma.masked_invalid(np_data)
# get figure and ax objects from plot
fig, ax = plt.subplots()
# Draw an "X" on transparent values (masked values)
ax.patch.set(hatch='x', edgecolor='blue')
# get a predefined color scheme
reds_cm = plt.get_cmap("Reds")
# Plot heatmap, add a colorbar and show it
heatmap = ax.pcolor(np_data, cmap=reds_cm)
cbar = fig.colorbar(heatmap)
plt.show()
Теперь NaNs легко идентифицировать на графике.
Теперь, скажем, я хочу иметь возможность легко разделить между NaNs, 0s и остальными значениями.
Если я сейчас замаскирую 0s, я не смогу сказать NaNs и 0s друг от друга.
Как я могу отличить 2 группы значений в цветовой палитре? В этом случае NaNs с одной стороны и 0s в другом.
Соответствующие вопросы здесь http://stackoverflow.com/questions/35905393/python-leave-numpy-nan-values-from-matplotlib-heatmap-and-its-legend/35905483 # 35905483 и http://stackoverflow.com/questions/16120481/matplotlib-grayscale-heatmap-with-visually-distinct-na-squares-fields – ImportanceOfBeingErnest