Matplotlib.pyplot.imshow() 绘制热力图

Python代码:

# 导入第三方包
import matplotlib
import numpy as np
import matplotlib.pyplot as plt

# matplotlib其实是不支持显示中文的 显示中文需要额外设置
# 设置字体类型,宋体:SimSun  华文楷体:STKaiti  微软雅黑:Microsoft YaHei
matplotlib.rcParams['font.family'] = 'STKaiti'

# 设置字体尺寸
matplotlib.rcParams['font.size'] = 12

# 数据(此数据仅供绘图,非真实数据)
data = np.array([
    [0.27, 0.18, 0.67, 0.57, 0.19, 1.00],
    [0.52, 0.22, 0.16, 0.34, 1.00, 0.19],
    [0.81, 0.41, 0.95, 1.00, 0.34, 0.57],
    [0.33, 0.54, 1.00, 0.95, 0.16, 0.67],
    [0.15, 1.00, 0.54, 0.41, 0.22, 0.18],
    [1.00, 0.15, 0.33, 0.81, 0.52, 0.27]
])

# 标签
label = np.array(['Apple', 'Orange', 'Pear', 'Lemon', 'Cherry', 'Banana'])

# 设置画布
plt.figure(num='e_imshow', figsize=(8, 6), dpi=100)

# imshow(X=矩阵数据)
plt.imshow(X=data)

# 加入颜色棒
plt.colorbar()

# 设置X、Y轴刻度及标签
plt.xticks(ticks=np.arange(len(label)), labels=label)
plt.yticks(ticks=np.arange(len(label)), labels=reversed(label))

# 设置坐标(i, j)显示的数值
for i in range(len(label)):
    for j in range(len(label)):
        # text((x, y)=坐标, s=数值, ha=水平对齐, va=垂直对齐, color=颜色)
        plt.text(x=i, y=j, s=data[j][i], ha='center', va='center', color='white')

# 设置图像标题
plt.title(label='常见水果热力图')

# 保存图像
# plt.savefig('e_imshow.png')

# 展示图片
plt.show()

热力图效果:

posted @ 2022-11-04 16:56  a最简单  阅读(1160)  评论(0编辑  收藏  举报