comment annoter heatmap avec du texte dans matplotlib?

je trace un heatmap dans matplotlib en utilisant:

plt.pcolor(rand(5,5))

comment puis-je annoter la heatmap avec les chiffres réels tracée? c'est-à-dire que dans chaque cellule de heatmap tracée, mettez la valeur correspondant à cette cellule dans la matrice 5x5 passée à pcolor. grâce.

23
demandé sur user248237dfsf 2012-08-12 00:48:47

2 réponses

Il n'y a pas de fonction automatique pour faire une telle chose, mais vous pouvez boucler chaque point et mettre du texte à l'endroit approprié:

import matplotlib.pyplot as plt
import numpy as np

data = np.random.rand(5, 4)
heatmap = plt.pcolor(data)

for y in range(data.shape[0]):
    for x in range(data.shape[1]):
        plt.text(x + 0.5, y + 0.5, '%.4f' % data[y, x],
                 horizontalalignment='center',
                 verticalalignment='center',
                 )

plt.colorbar(heatmap)

plt.show()

Code output

HTH

41
répondu pelson 2012-08-11 22:18:15

Le Seaborn heatmap fait le travail automatiquement, en définissant annot=True.

Voir pour un exemple.

5
répondu user56643 2016-07-02 09:24:12