使用Pandas DataFrames、Matplotlib以及Seaborn制作热量图的方法及示例
Matplotlib是Python中著名的数据可视化库,它被广泛地应用于统计分析和绘图方面。作为一种基于Python的图形库,Matplotlib的定位是创建各种可视化产品,从简单的绘图到高级的动态数据可视化,其目标是为Python对数据分析的各个阶段提供更好的支持。
Seaborn是在Matplotlib基础上开发的,是另一个常用的Python数据可视化库。与Matplotlib的默认色彩和输出格式不同,Seaborn主要关注数据可视化和数据分布。其美观、专业和高效的可视化界面是Seaborn的主要优势之一。
在数据处理和可视化的过程中,Pandas也是不可或缺的工具。Pandas是一个功能强大的数据结构构建工具,旨在使Python成为数据分析使用中的高级工具。简而言之,它是Python中的一个表格处理模块,类似于Excel中的表格操作。而DataFrames是Pandas的一种数据类型,如果您结合使用DataFrames和Matplotlib/seaborn,就可以轻松创建各种可视化图表。
在本文中,我们将会学习使用Pandas DataFrames、Matplotlib以及Seaborn制作热量图的方法及示例。
阅读更多:Matplotlib 教程
准备工作
在继续进行操作之前,我们首先要安装必要的Python相关库,可以使用以下命令在终端或命令行中完成安装:
pip install pandas matplotlib seaborn
准备数据
在本教程中,我们将使用一个糖果销售的数据集,大概包含1000个数据样本,其中包括以下列:
- Name:产品名称
- Calories:每100克的卡路里数
- Fat:每100克的脂肪含量
- Sugar:每100克的糖含量
- Price:价格
为了更好地了解数据,我们可以使用以下代码,将数据放入DataFrames中,并输出前10行数据来预览数据。
import pandas as pd
data = pd.read_csv('candy.csv')
print(data.head(10))
输出结果如下:
Name Calories Fat Sugar Price
0 100 Grand 185 8 31 0.76
1 3 Musketeers 170 5 22 0.60
2 7 Up 150 0 38 0.79
3 Almond Joy 220 13 21 0.76
4 Baby Ruth 280 14 34 0.89
5 Boston Baked B. 100 3 16 0.17
6 Butterf. 230 11 30 0.83
7 Candy Corn 140 0 28 0.28
8 Caramel Apple Pop 120 2 19 0.53
9 Charleston C 100 0 10 0.01
制作热量图
接下来,我们将使用DataFrames、Matplotlib和Seaborn制作热量图。
Matplotlib
Matplotlib提供了多种方式来绘制热量图,这里我们将会介绍其中一种方法。此方法使用Matplotlib中的pcolor或imshow函数来制作热量图。
import numpy as np
import matplotlib.pyplot as plt
# 创建需要绘制的矩阵数据
matrix = np.random.randint(1,101,size=(10,10))
# 创建绘图对象
fig = plt.figure()
# 用pcolor方式绘制热量图
plt.pcolor(matrix, cmap=plt.cm.Blues)
# 设置图像的名称和横纵坐
plt.title("Heatmap using Matplotlib")
plt.xlabel("X-axis")
plt.ylabel("Y-axis")
# 添加绘图标注
for y in range(matrix.shape[0]):
for x in range(matrix.shape[1]):
plt.text(x + 0.5, y + 0.5, '%d' % matrix[y, x],
horizontalalignment='center',
verticalalignment='center',
)
# 显示绘图结果
plt.colorbar()
plt.show()
运行上述代码,我们可以看到Matplotlib热量图的结果
从上图中可以看出,热量图的颜色深浅程度表示数据的大小,颜色越深代表数值越大,颜色越浅代表数字越小。右侧的颜色条显示颜色和具体数值的对应关系。在这里,我们使用了Matplotlib的pcolor函数来绘制热量图,同时也为矩阵中的数据添加了标注。
Seaborn
如果想要在Python中创建高级热量图,可以使用Seaborn。Seaborn提供了很多样式和功能,可以帮助您更方便、快捷地创建各种不同类型的可视化图表。下面我们就通过一个例子来演示如何使用Seaborn创建热量图。
import seaborn as sns
# 创建需要绘制的矩阵数据
matrix = np.random.randint(1, 101, size=(10, 10))
# 设置颜色主题
sns.set_theme()
# 用heatmap方式绘制热量图
sns.heatmap(matrix, cmap="Blues", annot=True, fmt="d")
# 设置图像的名称和横纵坐标
plt.title("Heatmap using Seaborn")
plt.xlabel("X-axis")
plt.ylabel("Y-axis")
# 显示绘图结果
plt.show()
运行上述代码,我们可以看到Seaborn热量图的结果
从上图中可以看出,Seaborn的热量图不仅更加美观,而且可以通过不同的调色板(cmap)来制作不同的热量图。另外,Seaborn的heatmap方法中还有annot和fmt参数,可以添加数字标志和控制标志的格式。
总结
到这里,我们已经成功的使用了Pandas DataFrames、Matplotlib和Seaborn制作了热量图,并了解了如何在其基础之上添加标注和进行调色板的选择。希望这篇文章能够帮助大家更好地理解Python中的数据可视化相关知识。