12 Pandas零基础教程系列:数据可视化之简单的绘图
在上一篇中,我们讨论了如何进行数据分析,特别是关于数据的分组与聚合。在数据分析的过程中,常常需要将结果以图形的形式展示,以便更直观地理解数据。这一篇,我们将介绍如何使用 Pandas 进行简单的数据可视化,帮助大家快速掌握基本的绘图技能。
1. 使用 Pandas 的内置绘图功能
Pandas 提供了一个非常方便的绘图接口,它是基于 Matplotlib 的,但对用户进行了很好的封装。我们可以直接使用 Pandas 的 DataFrame 或 Series 进行绘图,而不需要深入了解 Matplotlib 的复杂设置。
1.1 基本的绘图
首先,我们先创建一个简单的 DataFrame,作为我们绘图的基础。
import pandas as pd
import numpy as np
# 创建一个简单的 DataFrame
data = {
'年份': [2018, 2019, 2020, 2021, 2022],
'销量': [50, 70, 65, 80, 90]
}
df = pd.DataFrame(data)
print(df)
这会生成以下 DataFrame:
年份 销量
0 2018 50
1 2019 70
2 2020 65
3 2021 80
4 2022 90
接下来,我们可以使用 plot
方法生成图形。
1.2 绘制折线图
折线图是展示数据变化趋势的有效方式。我们可以使用以下代码绘制折线图:
import matplotlib.pyplot as plt
# 绘制折线图
df.plot(x='年份', y='销量', kind='line', marker='o')
plt.title('每年销量变化趋势')
plt.xlabel('年份')
plt.ylabel('销量')
plt.grid()
plt.show()
执行上述代码后,将会显示每年销量的变化趋势图。图中我们使用了 marker='o'
来标记各个数据点,以便更清晰地查看每年的销量变化。
1.3 绘制柱状图
柱状图是另一种常见的可视化方式,适合用来比较不同类别之间的数值。我们可以使用 kind='bar'
来绘制柱状图。
# 绘制柱状图
df.plot(x='年份', y='销量', kind='bar', color='skyblue')
plt.title('每年销量对比')
plt.xlabel('年份')
plt.ylabel('销量')
plt.xticks(rotation=0) # 让 x 轴的标签水平显示
plt.show()
这里我们改变了图的颜色,将其设为 skyblue
,并将 x 轴标签的角度设置为 0,以提高可读性。
1.4 散点图
散点图适合显示两个数值变量之间的关系。从上面的数据来看,我们暂时只有一个数值变量,但我们可以生成一些随机数据来更好地演示。
# 生成随机数据
df['随机值'] = np.random.randint(1, 100, size=len(df))
# 绘制散点图
df.plot.scatter(x='销量', y='随机值', color='red')
plt.title('销量与随机值的散点图')
plt.xlabel('销量')
plt.ylabel('随机值')
plt.grid()
plt.show()
2. 结合实际案例
接下来,我们来看一个结合 Pandas 和 Matplotlib 的实际案例,以绘制一个多条折线图的情况。假设我们在分析多个产品的销量情况。
# 创建示例数据
data = {
'年份': [2018, 2019, 2020, 2021, 2022],
'产品A': [50, 70, 75, 80, 90],
'产品B': [40, 65, 60, 85, 95],
'产品C': [30, 80, 70, 60, 80]
}
df_multi = pd.DataFrame(data)
df_multi.set_index('年份', inplace=True)
# 绘制多条折线图
df_multi.plot()
plt.title('多产品销量变化趋势')
plt.xlabel('年份')
plt.ylabel('销量')
plt.grid()
plt.legend(title='产品')
plt.show()
在这个例子中,我们可以清晰地看到不同产品在不同时期的销量变化趋势。
3. 总结
在这一部分中,我们学习了如何使用 Pandas 进行简单的绘图,包括折线图、柱状图和散点图等。通过以上的案例可以看出,Pandas 提供的绘图功能非常强大,适合快速生成可视化结果,帮助我们进行数据分析。
在下一篇中,我们将深入探讨如何结合 Matplotlib 进行更复杂和个性化的图形绘制,敬请期待!