Matplotlib imshow / matshow exibe valores no gráfico
Estou tentando criar uma grade 10x10 usandoimshow
oumatshow
em Matplotlib. A função abaixo pega uma matriz numpy como entrada e plota a grade. No entanto, eu gostaria de ter valores da matriz também exibidos dentro das células definidas pela grade. Até agora não consegui encontrar uma maneira adequada de fazê-lo. Eu posso usarplt.text
colocar coisas sobre a grade, mas isso requer coordenadas de cada célula, totalmente inconveniente. Existe uma maneira melhor de fazer o que estou tentando realizar?
Obrigado!
NOTA: O código abaixo ainda não aceita os valores da matriz, eu estava apenas brincando complt.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)
Resultado: