
我们讨论了如何进行数据分析,特别是关于数据的分组与聚合.在数据分析的过程中,常常需要将结果以图形的形式展示,以便更直观地理解数据.这一篇,我们将介绍如何使用 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 提供的绘图功能非常强大,适合快速生成可视化结果,帮助我们进行数据分析.
原创文章不易,求点赞、在看、转发或留言,这样对我创作下一个精美文章会有莫大的动力!
原文始发于微信公众号(python小胡子):Python的数据可视化简单的绘图工具
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/303297.html