二维numpy数组无法正确显示

问题描述 投票:0回答:1

我有一个二维 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)

我想要这样的照片:

附件: 我试着规范化这个数组然后绘制它,但这会导致一些未知的问题并且图片绘制不正确。此外,一些与数据相关的问题也让我无法尝试规范化数据。

python matplotlib plot
1个回答
0
投票

我很确定,您不希望 bmin = bmin + str(0.00001)(对于 bmax 也是如此)。它与 bmin /= 100_000 完全相同,这就是为什么你只有 2 种颜色:0 和非零。

© www.soinside.com 2019 - 2024. All rights reserved.