Как комментировать текст с текстом в matplotlib?

Я рисую тепловую карту в matplotlib, используя:

plt.pcolor(rand(5,5))

как я могу аннотировать тепловую карту с фактическими числами, нанесенными на график? что означает в каждой ячейке построенной тепловой карты, поместите значение, соответствующее этой ячейке в матрице 5x5, переданной на pcolor. спасибо.

Ответ 1

Нет никакой автоматической функции, чтобы делать такую ​​вещь, но вы могли бы прокручивать каждую точку и помещать текст в соответствующее место:

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

НТН

Ответ 2

Морская тепловая карта выполняет эту работу автоматически, устанавливая annot=True.

См. этот для примера.