gpt4 book ai didi

python - 注释 matplotlib 热图

转载 作者:行者123 更新时间:2023-12-04 08:59:52 24 4
gpt4 key购买 nike

我在已经存在的图像上的 Matplotlib 上创建了一个简单的热图,现在我试图在单元格上显示值,但问题是这些值不会进入热图内部,而是在图像周围,here是截图。
我认为这是因为我在图像顶部生成热图,但我不知道如何解决。这是我的代码:

fig,ax = plt.subplots(1)

ax.imshow(im)

a = [[0.0233188 0.0232844 0.0233099 0.0242786 ]
[0.0233158 0.023217 0.02370096 0.02434176]
[0.02328474 0.02319508 0.02433976 0.02290478]
[0.02320107 0.02345002 0.02484117 0.02355316]
[0.02317872 0.02374418 0.02374605 0.02157998]]

ax1 = fig.add_subplot(111)

bounds1 = sorted([0.023, np.amin(a), np.amax(a)])
norm1 = matplotlib.colors.TwoSlopeNorm(vcenter=bounds1[1], vmin=bounds1[0], vmax=bounds1[2])

Map = ax1.imshow(a, interpolation='none', norm=norm1, extent=[0, 1.15, 0, 0.85])

x1 = [1, 2, 3, 4]
y1 = [1, 2, 3, 4, 5]

for i in range(len(y1)):
for j in range(len(x1)):
text = ax1.text(j, i, a[i, j],
ha="center", va="center", color="r")

最佳答案

extent=[x0, x1, y0, y1]更改图像的 x 和 y 坐标。当 x0 和 x1 之间有 N 个单元格时,可以通过将距离拆分为 2N+1 来找到单元格中心部分并采取该列表的第 1、3、5、... 位置。
请注意,如 imshow(a, ...)没用过 origin='lower' , 值相反。因此,对于 y 位置需要以相反的顺序遍历。

from matplotlib import pyplot as plt
import matplotlib
import numpy as np

fig, ax = plt.subplots()
ax.axis('off')

a = np.array([[0.0233188, 0.0232844, 0.0233099, 0.0242786],
[0.0233158, 0.023217, 0.02370096, 0.02434176],
[0.02328474, 0.02319508, 0.02433976, 0.02290478],
[0.02320107, 0.02345002, 0.02484117, 0.02355316],
[0.02317872, 0.02374418, 0.02374605, 0.02157998]])
ax1 = fig.add_subplot(111)

bounds1 = sorted([0.023, np.amin(a), np.amax(a)])
norm1 = matplotlib.colors.TwoSlopeNorm(vcenter=bounds1[1], vmin=bounds1[0], vmax=bounds1[2])

x0, x1, y0, y1 = 0, 1.15, 0, 0.85
Map = ax1.imshow(a, interpolation='none', norm=norm1, extent=[x0, x1, y0, y1])

for i, yi in enumerate(np.linspace(y0, y1, 2 * a.shape[0] + 1)[-2::-2]):
for j, xj in enumerate(np.linspace(x0, x1, 2 * a.shape[1] + 1)[1::2]):
text = ax1.text(xj, yi, f'{a[i, j]:.6f}',
ha="center", va="center", color='darkred' if a[i, j] > bounds1[1] else 'white', fontsize=10)
plt.show()
resulting plot

关于python - 注释 matplotlib 热图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63613536/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com