使用pcolor在matplotlib中创建热力图
首先,我们可以使用imshow方法创建一个图像,使用收获矩阵。之后,我们可以用一些值标记这些图像像素。
步骤
创建一个科目列表。
创建一个学生列表。
创建一个收获矩阵。
使用subplots方法创建fig和ax变量,其中默认的nrows和ncols为1。
将数据显示为图像,即在二维规则光栅上,使用步骤1中的数据。
获取或设置X轴的当前刻度位置和标签,长度为学生数量。
获取或设置Y轴的当前刻度位置和标签,长度为科目数量。
设置网格的X轴刻度标签,使用学生列表。
设置网格的Y轴刻度标签,使用科目列表。
设置艺术对象上的属性,包括旋转、水平对齐和rotation_mode="anchor"。
使用text方法向绘图添加文本。
使用set_title()方法为坐标轴设置标题。
要显示图形,请使用plt.show()方法。
示例
import numpy as np
import matplotlib.pyplot as plt
subjects = ["math", "physics", "chemistry", "biology", "english"]
students = ["A", "B", "C", "D", "E"]
harvest = np.array([
[1, 2, 3, 4, 5],
[6, 7, 8, 9, 10],
[11, 12, 13, 14, 15],
[18, 19, 22, 14, 15],
[5, 3, 2, 1, 6]
])
fig, ax = plt.subplots()
im = ax.imshow(harvest)
ax.set_xticks(np.arange(len(students)))
ax.set_yticks(np.arange(len(subjects)))
ax.set_xticklabels(students)
ax.set_yticklabels(subjects)
plt.setp(ax.get_xticklabels(), rotation=45, ha="right", rotation_mode="anchor")
for i in range(len(subjects)):
for j in range(len(students)):
text = ax.text(j, i, harvest[i, j], ha="center", va="center", color="w")
ax.set_title("Marks Distribution")
plt.show()输出

广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP