相关疑难解决方法(0)

Matplotlib imshow/matshow在图上显示值

我正在尝试使用Matplotlib中的任何一个imshowmatshow在Matplotlib中创建10x10网格.下面的函数将numpy数组作为输入,并绘制网格.但是,我希望数组中的值也显示在网格定义的单元格内.到目前为止,我找不到合适的方法来做到这一点.我可以plt.text用来将东西放在网格上,但这需要每个单元格的坐标,完全不方便.有没有更好的方法来做我想要完成的事情?

谢谢!

注意:下面的代码还没有从数组中获取值,我只是在玩plt.text.

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

board = np.zeros((10, 10))

def visBoard(board):
   cmap = colors.ListedColormap(['white', 'red'])
   bounds=[0,0.5,1]
   norm = colors.BoundaryNorm(bounds, cmap.N)
   plt.figure(figsize=(4,4))
   plt.matshow(board, cmap=cmap, norm=norm, interpolation='none', vmin=0, vmax=1)
   plt.xticks(np.arange(0.5,10.5), [])
   plt.yticks(np.arange(0.5,10.5), [])
   plt.text(-0.1, 0.2, 'x')
   plt.text(0.9, 0.2, 'o')
   plt.text(1.9, 0.2, 'x')
   plt.grid()

   visBoard(board)
Run Code Online (Sandbox Code Playgroud)

输出:

在此输入图像描述

python visualization numpy matplotlib

14
推荐指数
1
解决办法
2万
查看次数

标签 统计

matplotlib ×1

numpy ×1

python ×1

visualization ×1