【发布时间】:2014-12-05 20:35:23
【问题描述】:
我正在尝试将一维数组绘制为 pcolormesh(因此颜色沿 x 轴变化,但在每个 x 的 y 轴上是恒定的)。但是我的数据有一些错误的值,所以我使用了一个掩码数组和一个自定义的颜色图,掩码值设置为蓝色:
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.cm as cm
import copy
a = np.array([3, 5, 10, np.inf, 5, 8])
a = np.ma.masked_where(np.isinf(a), a)
imdata = np.vstack((a, a))
myhot = copy.copy(cm.hot)
myhot.set_bad('b', 1)
fig, ax = plt.subplots()
im = ax.pcolormesh(imdata, cmap=myhot)
plt.colorbar(im)
plt.show()
如果我没有 np.inf 值,它可以正常工作,但如果我有,我只会得到一个空白图。我似乎误解了 set_bad 的工作方式,因为我收到了额外的警告:
RuntimeWarning: invalid value encountered in true_divide
resdat /= (vmax - vmin)
我应该怎么做才能达到我想要的效果?
【问题讨论】:
标签: python numpy matplotlib