Matplotlib imshow / matshow muestra valores en la trama
Estoy tratando de crear una cuadrícula de 10x10 usando cualquieraimshow
omatshow
en Matplotlib. La siguiente función toma una matriz numpy como entrada y traza la cuadrícula. Sin embargo, me gustaría que los valores de la matriz también se muestren dentro de las celdas definidas por la cuadrícula. Hasta ahora no pude encontrar una manera adecuada de hacerlo. Puedo usarplt.text
colocar cosas sobre la cuadrícula, pero esto requiere coordenadas de cada celda, totalmente inconveniente. ¿Hay una mejor manera de hacer lo que estoy tratando de lograr?
¡Gracias!
NOTA: El siguiente código todavía no toma los valores de la matriz, solo estaba jugando conplt.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)
Salida: