我想使用matplotlib.pyplot.hist2d绘制2D直方图。作为输入,我有掩蔽的numpy.ma数组。像这样,它可以正常工作:
hist2d (arr1,arr2,cmin=1)
然而,如果我想将数组进行归一化处理,使得其值始终在0到1之间,可以使用normed=True关键字,如下所示:
hist2d (arr1,arr2,cmin=1, normed=True)
我遇到了错误。
.../numpy/ma/core.py:3791: UserWarning: Warning: converting a masked element to nan.
warnings.warn("Warning: converting a masked element to nan.")
.../matplotlib/colorbar.py:561: RuntimeWarning: invalid value encountered in greater
inrange = (ticks > -0.001) & (ticks < 1.001)
.../matplotlib/colorbar.py:561: RuntimeWarning: invalid value encountered in less
inrange = (ticks > -0.001) & (ticks < 1.001)
.../matplotlib/colors.py:556: RuntimeWarning: invalid value encountered in less
cbook._putmask(xa, xa < 0.0, -1)
有什么方法可以解决这个问题并获得一个归一化的二维直方图?
cmin=1
: 这是在归一化之后应用的,直方图中将没有任何元素,因为所有的箱子值都会小于1(这些值实际上被设置为NaN)。因此,没有剩下的东西可以绘制! - user707650