matplotlib 无法正确显示二维numpy数组

x6yk4ghg  于 2023-03-30  发布在  其他
关注(0)|答案(1)|浏览(130)

我有一个二维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(),并使用vminvmax来控制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)

我想得到这样的图片:

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

xqkwcwgp

xqkwcwgp1#

我很确定,你不想有bmin = bmin + str(0.00001)(和bmax一样)。它与bmin /= 100_000完全相同,这就是为什么你只有2种颜色:0和非零。

相关问题