Ich versuche, Imshow in Matplotlib zu verwenden, um Daten als Heatmap zu plotten, aber einige der Werte sind NaNs. Ich möchte, dass die NaNs als spezielle Farbe gerendert werden, die nicht in der Colormap gefunden wird.Wie kann ich NaN-Werte als Sonderfarbe mit imshow in Matplotlib darstellen?
Beispiel:
import numpy as np
import matplotlib.pyplot as plt
f = plt.figure()
ax = f.add_subplot(111)
a = np.arange(25).reshape((5,5)).astype(float)
a[3,:] = np.nan
ax.imshow(a, interpolation='nearest')
f.canvas.draw()
Das resultierende Bild ist unerwartet alle blau (die niedrigste Farb im Strahl colormap). Allerdings, wenn ich tun Plotten das wie folgt aus:
ax.imshow(a, interpolation='nearest', vmin=0, vmax=24)
--then ich etwas besser, aber die NaN-Werte sind die gleiche Farbe wie vmin gezeichnet ... Gibt es eine elegante Art und Weise, die ich setzen kann NaNs zu mit einer speziellen Farbe gezeichnet werden (zB: grau oder transparent)?
Ein paar Jahre später ('matplotlib .__ Version __ == '1.2.1''), das funktioniert problemlos. –