Matplotlib是否显示二维数组的网格线和值?

2024-10-01 00:35:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我将首先显示我得到的绘图:enter image description here

我想做的是将每个位置的值显示在每个正方形的中心,我设法做到了这一点,尽管它不可见,因为我将贴图更改为二进制(黑白)。但是,当我添加网格线以使它们看起来分开时,它们在值的顶部相交,如上图所示

我正在绘制的阵列只有3x3。因此,我希望看到总共有九个相等的框,每个框的中心都有相应的值。有人知道怎么做吗?这是我的一段脚本

fig, ax = plt.subplots()
ax.matshow(np.zeros((3,3)), cmap='binary')
ax.grid(which='major', color='black', linestyle='-', linewidth=1)

# To display the values
for (i, j), z in np.ndenumerate(ipcavg):
    ax.text(j, i, '{:0.2f}'.format(z), ha='center', va='center')

plt.show()

谢谢


Tags: 脚本绘图np二进制fig绘制pltax
1条回答
网友
1楼 · 发布于 2024-10-01 00:35:40
import matplotlib.pyplot as plt
import numpy as np
fig, ax = plt.subplots()
ax.matshow(np.zeros((3,3)), cmap='binary')
ax.grid(which='major', color='black', linestyle='-', linewidth=1)
# To display the values
ax.set_xlim([0,3])
ax.set_ylim([0,3])
for (i, j), z in [[(0,0),0],[(1,1),1],[(2,2),2],[(3,3),3],[(2,3),4],[(1,3),5],[(2,1),6],[(3,2),7],[(1,2),7],[(3,1),8]]:
    ax.text(j-0.5, i-0.5, '{:0.2f}'.format(z), ha='center', va='center')
plt.show()

使用set_xlim、set_ylim正确绘制方框 从框高度的x,y减半,并为框的右上角提供坐标

相关问题 更多 >