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

32
我正在使用matplotlib绘制热力图,方法如下: plt.pcolor(rand(5,5)) 我该如何为热力图添加实际数值的注释?也就是在每个单元格里放置与传递给pcolor的5x5矩阵中对应的值。谢谢。
2个回答

54

没有自动化功能可以做到这一点,但您可以循环遍历每个点并将文本放置在相应的位置:

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()

代码输出

希望对你有帮助


9
海龟库的热力图功能可以通过设置 annot=True 实现自动化处理。
请参考这个链接以获得范例。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接