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: