Matplotlib imshow/matshow afficher les valeurs sur la parcelle

Je suis en train de créer une grille de 10x10 en utilisant soit imshow ou matshow dans Matplotlib. La fonction suivante prend un tableau numpy comme entrée, et les parcelles de la grille. Cependant, j'aimerais avoir des valeurs dans le tableau affiche également à l'intérieur des cellules définies par la grille. Jusqu'à présent, je ne pouvais pas trouver une bonne façon de le faire. Je peux utiliser plt.text pour placer les choses sur la grille, mais cela nécessite des coordonnées de chaque cellule, totalement inopportun. Est-il une meilleure façon de faire ce que je suis en train d'accomplir?

Merci!

REMARQUE: Le code ci-dessous ne prend pas les valeurs de la matrice pourtant, j'étais juste à jouer avec 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)

De sortie:

Matplotlib imshow/matshow afficher les valeurs sur la parcelle

l'utilisation d'annoter qui vous permet d'être très flexible avec la façon dont vous indiquer les coordonnées du texte.
Je me demandais si il existe un moyen de le faire sans en préciser les coordonnées. Jusqu'à présent, je l'ai fait manuellement (peut-être pas la meilleure idée, en Supposant que la figure de taille peut changer, je vais arriver avec une fonction qui calcule les coordonnées correctes.

OriginalL'auteur marillion | 2014-02-11