我有一个二维numpy数组,有些值的差异很小,但对于其他值来说很大,例如:
[[0.66667, 0.66675, 0.66725, ... , 0.66634],
[0.66377, 0.66634, 0.66280, ... , 0.66172],
... ,
[0.0, 0.0, 0.66536, ... , 0.65523],
[0.0, 0.0, 0.65231, ... , 0.66723]] = M
我试过plt.imshow()
,并使用vmin
vmax
来控制colorbar,但它仍然无法正确显示。
我的代码:
def MinMax(M):
NZM = M.nonzero()
bmin =M[NZM].min()
bmax = M.max()
bmax, bmin = format(bmax, '.5f'), format(bmin, '.5f')
bmax = bmax + str(0.00001)
bmin = bmin + str(0.00001)
return bmax, bmin
cmax, cmin = MinMax(M)
plt.imshow(M, origin="lower", vmin=cmin, vmax=cmax)
我想得到这样的图片:
附件:我试着规范化这个数组,然后画出来,但这会导致一些未知的问题和图片绘制不正确。此外,一些数据相关的问题也让我不尝试规范化数据。
1条答案
按热度按时间xqkwcwgp1#
我很确定,你不想有bmin = bmin + str(0.00001)(和bmax一样)。它与bmin /= 100_000完全相同,这就是为什么你只有2种颜色:0和非零。