Angenommen, ich möchte die NaNs in einer Matplotlib Colormap unterscheiden. Dann:Maskieren Sie zwei Gruppen von Werten in Matlotlib Colormap mit graduellem Farbschema
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()
Jetzt NaNs sind leicht erkennbar in der Handlung.
Nun sagen, ich möchte in der Lage sein, leicht unterscheiden zwischen NaNs, 0s und den Rest der Werte.
Wenn ich jetzt die 0s maskiere, kann ich die NaNs und die 0s nicht unterscheiden.
Wie kann ich zwei Gruppen von Werten in einer Colormap unterscheiden? In diesem Fall NaNs einerseits und Nullen andererseits.
Relevante Fragen hier Herstellung sind http://stackoverflow.com/questions/35905393/python-leave-numpy-nan-values-from-matplotlib-heatmap-and-its-legend/35905483 # 35905483 und http://stackoverflow.com/questions/16120481/matplotlib-grayscale-heatmap-with-visual-distinct-na-squares-fields – ImportanceOfBeingErnest