How can I plot NaN values as a special color with imshow in matplotlib?
Posted
by Adam Fraser
on Stack Overflow
See other posts from Stack Overflow
or by Adam Fraser
Published on 2010-04-05T14:03:56Z
Indexed on
2010/04/05
14:33 UTC
Read the original article
Hit count: 366
example:
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()
The resultant image is unexpectedly all blue (the lowest color in the jet colormap). However, if I do the plotting like this:
ax.imshow(a, interpolation='nearest', vmin=0, vmax=24)
--then I get something better, but the NaN values are drawn the same color as vmin... Is there a graceful way that I can set NaNs to be drawn with a special color (eg: gray or transparent)?
© Stack Overflow or respective owner