如何在matplotlib中用文本注释热图?

时间:2012-08-11 20:48:48

标签: python numpy matplotlib scipy

我正在使用:

在matplotlib中绘制热图

plt.pcolor(rand(5,5))

如何使用实际数字绘制热图?意味着在绘制的热图的每个单元格中,将对应于该单元格的值放入传递给pcolor的5x5矩阵中。感谢。

2 个答案:

答案 0 :(得分:45)

没有自动功能可以执行此类操作,但您可以遍历每个点并将文本放在适当的位置:

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

答案 1 :(得分:5)

seaborn heatmap通过设置annot=True自动完成工作。

有关示例,请参阅this