Pandas 数据可视化
创作时间:
作者:
@小白创作中心
Pandas 数据可视化
引用
1
来源
1.
http://www.runoob.com/pandas/pandas-matplotlib.html
数据可视化是数据分析中的重要环节,它帮助我们更好地理解和解释数据的模式、趋势和关系。通过图形、图表等形式,数据可视化将复杂的数字和统计信息转化为易于理解的图像,从而便于做出决策。Pandas提供了与Matplotlib和Seaborn等可视化库的集成,使得数据的可视化变得简单而高效。
在Pandas中,数据可视化功能主要通过DataFrame.plot()
和Series.plot()
方法实现,这些方法实际上是对Matplotlib库的封装,简化了图表的绘制过程。
图表类型 | 描述 | 方法 |
---|---|---|
折线图 | 展示数据随时间或其他连续变量的变化趋势 | df.plot(kind='line') |
柱状图 | 比较不同类别的数据 | df.plot(kind='bar') |
水平柱状图 | 比较不同类别的数据,但柱子水平排列 | df.plot(kind='barh') |
直方图 | 显示数据的分布 | df.plot(kind='hist') |
散点图 | 展示两个数值型变量之间的关系 | df.plot(kind='scatter', x='col1', y='col2') |
箱线图 | 显示数据分布,包括中位数、四分位数等 | df.plot(kind='box') |
密度图 | 展示数据的密度分布 | df.plot(kind='kde') |
饼图 | 显示不同部分在整体中的占比 | df.plot(kind='pie') |
区域图 | 展示数据的累计数值 | df.plot(kind='area') |
Pandas数据可视化的基本功能和方法可以满足大多数日常数据可视化的需求,但若要实现更复杂的可视化,可以结合Matplotlib和Seaborn使用,进行更精细的图表定制。
一、Pandas数据可视化概述
Pandas提供的plot()
方法可以轻松地绘制不同类型的图表,包括折线图、柱状图、直方图、散点图等。plot()
方法有很多参数,可以定制图表的样式、颜色、标签等。
1. 基本的plot()
方法
参数 | 说明 |
---|---|
kind | 图表类型,支持'line','bar','barh','hist','box','kde','density','area','pie'等类型 |
x | 设置x轴的数据列 |
y | 设置y轴的数据列 |
title | 图表的标题 |
xlabel | x轴的标签 |
ylabel | y轴的标签 |
color | 设置图表的颜色 |
figsize | 设置图表的大小(宽, 高) |
legend | 是否显示图例 |
2. 常用图表类型
图表类型 | 描述 | 常用用法 |
---|---|---|
折线图 | 用于显示随时间变化的数据趋势 | df.plot(kind='line') |
柱状图 | 用于显示类别之间的比较数据 | df.plot(kind='bar') |
水平柱状图 | 与柱状图类似,但柱子是水平的 | df.plot(kind='barh') |
直方图 | 用于显示数据的分布(频率分布) | df.plot(kind='hist') |
散点图 | 用于显示两个数值变量之间的关系 | df.plot(kind='scatter', x='col1', y='col2') |
箱线图 | 用于显示数据的分布、异常值及四分位数 | df.plot(kind='box') |
密度图 | 用于显示数据的密度分布 | df.plot(kind='kde') |
饼图 | 用于显示各部分占总体的比例 | df.plot(kind='pie') |
区域图 | 用于显示累计数值的图表(类似于折线图,但填充了颜色) | df.plot(kind='area') |
二、数据可视化示例
1. 折线图 (Line Plot)
折线图通常用于展示数据随时间的变化趋势。
import pandas as pd
import matplotlib.pyplot as plt
# 示例数据
data = {'Year': [2015, 2016, 2017, 2018, 2019, 2020],
'Sales': [100, 150, 200, 250, 300, 350]}
df = pd.DataFrame(data)
# 绘制折线图
df.plot(kind='line', x='Year', y='Sales', title='Sales Over Years', xlabel='Year', ylabel='Sales', figsize=(10,6))
plt.show()
2. 柱状图 (Bar Chart)
柱状图用于展示不同类别之间的比较,尤其适用于离散数据。
import pandas as pd
import matplotlib.pyplot as plt
# 示例数据
data = {'Category': ['A', 'B', 'C', 'D'],
'Value': [10, 15, 7, 12]}
df = pd.DataFrame(data)
# 绘制柱状图
df.plot(kind='bar', x='Category', y='Value', title='Category Values', xlabel='Category', ylabel='Value', figsize=(8,5))
plt.show()
3. 散点图 (Scatter Plot)
散点图用于展示两个数值变量之间的关系。
import pandas as pd
import matplotlib.pyplot as plt
# 示例数据
data = {'Height': [150, 160, 170, 180, 190],
'Weight': [50, 60, 70, 80, 90]}
df = pd.DataFrame(data)
# 绘制散点图
df.plot(kind='scatter', x='Height', y='Weight', title='Height vs Weight', xlabel='Height (cm)', ylabel='Weight (kg)', figsize=(8,5))
plt.show()
4. 直方图 (Histogram)
直方图用于显示数据的分布,特别是用于描述数据的频率分布。
import pandas as pd
import matplotlib.pyplot as plt
# 示例数据
data = {'Scores': [55, 70, 85, 90, 60, 75, 80, 95, 100, 65]}
df = pd.DataFrame(data)
# 绘制直方图
df.plot(kind='hist', y='Scores', bins=5, title='Scores Distribution', xlabel='Scores', figsize=(8,5))
plt.show()
5. 箱线图 (Box Plot)
箱线图用于展示数据的分布情况,包括中位数、四分位数以及异常值。
import pandas as pd
import matplotlib.pyplot as plt
# 示例数据
data = {'Scores': [55, 70, 85, 90, 60, 75, 80, 95, 100, 65]}
df = pd.DataFrame(data)
# 绘制箱线图
df.plot(kind='box', title='Scores Boxplot', ylabel='Scores', figsize=(8,5))
plt.show()
6. 饼图 (Pie Chart)
饼图用于展示各部分占总体的比例。
import pandas as pd
import matplotlib.pyplot as plt
# 示例数据
data = {'Category': ['A', 'B', 'C', 'D'],
'Value': [10, 15, 7, 12]}
df = pd.DataFrame(data)
# 绘制饼图
df.plot(kind='pie', y='Value', labels=df['Category'], autopct='%1.1f%%', title='Category Proportions', figsize=(8,5))
plt.show()
三、Seaborn可视化
Seaborn是基于Matplotlib的高级数据可视化库,提供了更漂亮、更易用的图表和更丰富的统计图表类型。在Pandas中,可以直接与Seaborn配合使用。
热力图(Heatmap)
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
# 示例数据
data = {'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]}
df = pd.DataFrame(data)
# 绘制热力图
sns.heatmap(df.corr(), annot=True, cmap='coolwarm')
plt.show()
数据集中所有数值特征之间的散点图矩阵
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
# 示例数据
data = {'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]}
df = pd.DataFrame(data)
sns.pairplot(df)
plt.show()
四、Matplotlib高级自定义
除了使用Pandas提供的plot()
方法外,Matplotlib还可以提供更灵活的自定义功能,例如添加标题、标签、设置图表风格、调整坐标轴等。
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
# 示例数据
data = {'Year': [2015, 2016, 2017, 2018, 2019],
'Sales': [100, 150, 200, 250, 300]}
df = pd.DataFrame(data)
# 绘制折线图
plt.plot(df['Year'], df['Sales'], color='blue', marker='o')
# 自定义
plt.title('Sales Over Years')
plt.xlabel('Year')
plt.ylabel('Sales')
plt.grid(True)
# 显示
plt.show()
热门推荐
易消化食物有哪些?推荐5种易消化、助消化的水果和食物
右侧气胸的典型肺部体征
物业维修基金到底有什么用途?
并购重组助民企做优做强
win11显卡检测方法?如何确认显卡正常工作?
北京教育学院教授团队破题“单元教学”:从“单元之形”走向“素养之魂”
美国顶流网红游中国爆火,“他直播6个小时,粉碎了西方几十年反华宣传谎言”
香港交通指南:地铁、公交、出租车全攻略
芦笋与竹笋,探寻两大蔬菜瑰宝的美食之旅
竹笋和什么搭配最好?十种搭配让你爱不释口!
柳宗元:历经磨难,铸就文学辉煌
人工智能时代,怎样找到靠谱的另一半?
牙齿矫正一定要打骨钉吗?骨钉适应症及副作用全解析
产品外观设计需求如何写
从理论到实践:效果研究在现实中的应用与挑战
刘备为什么得不到天下?庞统早看透并留下一句话,只有孔明能看懂
企业所得税汇算清缴:案例解析手续费及佣金支出及申报表填报
薯片存在致癌风险?食品中的TBHQ安全吗?
详解win11休眠模式与睡眠模式的不同
Windows 10/11睡眠与休眠功能详解:原理、设置与注意事项
运用时间管理提升学习效率
起底网恋骗局 想不到“女友”竟是高大魁梧的“他”
单台最高可省2.5万元!哈尔滨市政府汽车消费券明日开抢
机械腕表复杂功能详解:从日历到两地时
草鱼和清江鱼哪个好?哪种做烤鱼好吃?
“草本精华”实为有害物质 揭秘“白发转黑”产品的真实成分
大蒜长了绿芽能不能吃
ET文件格式详解:WPS表格与Excel的兼容性与转换方法
2型糖尿病C肽值范围 C肽值变化意味着是什么
一文读懂无人机AI识别算法,原理、技术、应用