Pandas 可视化

pandas 提供了非常方便的绘图功能,可以直接在 DataFrame 或 Series 上调用 plot()方法

来生成各种类型的图表。底层实现依赖于 Matplotlib,pandas 的绘图功能集成了许多常见的

图形类型,易于使用。

一、单变量可视化

1、柱状图:

柱状图用于展示类别数据的分布情况。它通过一系列矩形的高度(或长度)来展示数据

值,适合对比不同类别之间的数量或频率。简单直观,容易理解和比较各类别数据。

复制代码
import pandas as pd
df = pd.read_csv("D:\下载\data\sleep.csv")    #读取文件数据
pd.cut(df["sleep_duration"], [0, 5, 6, 7, 8, 9, 10, 11,    #cut是划分sleep_duration组
12]).value_counts().plot.bar(                              #bar为柱状图
color=["red", "green", "blue", "yellow", "cyan", "magenta",
"black", "purple"]
)

2、折线图:

折线图通常用于展示连续数据的变化趋势。它通过一系列数据点连接成的线段来表示数

据的变化。能够清晰地展示数据的趋势和波动

复制代码
pd.cut(df["sleep_duration"], [0, 5, 6, 7, 8, 9, 10, 11,
12]).value_counts().sort_index().plot()

3、面积图:

面积图是折线图的一种变体,线下的区域被填充颜色,用于强调数据的总量或变化。可

以更直观地展示数据量的变化,适合用来展示多个分类的累计趋势

复制代码
pd.cut(df["sleep_duration"], [0, 5, 6, 7, 8, 9, 10, 11,
12]).value_counts().sort_index().plot.area()

4、直方图:

直方图用于展示数据的分布情况。它将数据范围分成多个区间,并通过矩形的高度显示

每个区间内数据的频率或数量。可以揭示数据分布的模式,如偏态、峰度等

复制代码
df["sleep_duration"].value_counts().plot.hist()

5、饼状图:

饼状图用于展示一个整体中各个部分所占的比例。它通过一个圆形图形分割成不同的扇

形,每个扇形的角度与各部分的比例成正比。能够快速展示各部分之间的比例关系,但不适

合用于展示过多的类别或比较数值差异较小的部分

复制代码
pd.cut(df["sleep_duration"], [0, 5, 6, 7, 8, 9, 10, 11,
12]).value_counts().sort_index().plot.pie()

二、双变量可视化

1、散点图:

散点图通过在二维坐标系中绘制数据点来展示两组数值数据之间的关系。能够揭示两个

变量之间的相关性和趋势

复制代码
df.plot.scatter(x="sleep_duration", y="sleep_quality")

2、蜂窝图:

蜂窝图是散点图的扩展,通常用于表示大量数据点之间的关系。它通过将数据点分布在

一个六边形网格中,每个六边形的颜色代表其中的数据密度。适合展示大量数据点,避免了

散点图中的过度重叠问题。

复制代码
df.plot.hexbin(x="sleep_duration", y="sleep_quality", gridsize=10)
#gridsize=10 表示在 x 轴方向上使用 10 个六边形单元格

3、堆叠图:

堆叠图用于展示多个数据系列的累积变化。常见的堆叠图包括堆叠柱状图、堆叠面积图

等。它通过将每个数据系列堆叠在前一个系列之上,展示数据的累积情况。能够清晰地展示

不同部分的相对贡献,适合多个数据系列的比较。

复制代码
df["sleep_quality_stage"] = pd.cut(df["sleep_quality"], range(11))
df["sleep_duration_stage"] = pd.cut(df["sleep_duration"], [0, 5, 6, 7, 8, 9, 10, 11, 12])
df_pivot_table = df.pivot_table(values="person_id", index="sleep_quality_stage",
columns="sleep_duration_stage", aggfunc="count")
df_pivot_table.plot.bar()

#pivot_table是透视表
#aggfunc是整合函数

#会使柱体堆叠
df_pivot_table.plot.bar(stacked=True)

4、折线图:

复制代码
df_pivot_table.plot.line()
相关推荐
benchmark_cc1 天前
如何用 Python 进行多周期 K 线合成与时区对齐?基于 QuantDash 与 Pandas 的量化数据清洗实战(附 GitHub 源码)
开发语言·python·github·盯盘·pandas·quantdash·量化数据
梅雅达编程笔记2 天前
零基础学 Python 第14章 | 模块、包与第三方库
开发语言·python·django·numpy·pandas
梅雅达编程笔记3 天前
零基础学 Python 第15章 | 类与对象:面向对象编程入门
开发语言·python·django·numpy·pandas
benchmark_cc3 天前
Python 量化核心基础:前复权、后复权与不复权有什么区别?基于 QuantDash 的数据处理与回测避坑指南
开发语言·python·pandas·量化策略·量化交易·quantdash
人工干智能4 天前
科普:Pandas 索引器 loc 与 iloc 的编程思维
java·人工智能·pandas
梅雅达编程笔记4 天前
编程启蒙|Scratch 转 Python 系列第9天:字典/哈希表积木双向对照(AI大模型参数配置表实战)
开发语言·人工智能·python·numpy·pandas
benchmark_cc4 天前
用 Streamlit + QuantDash 10分钟拼装一个跨市场持仓风险与相关性诊断面板
开发语言·python·pandas·量化策略·量化交易·quantdash
benchmark_cc4 天前
如何用 Python + QuantDash 快速构建高胜率“配对交易(Pairs Trading)”策略?
开发语言·人工智能·python·pandas·量化交易·quantdash
weixin_307779137 天前
Python Pandas读取Excel Sheet生成SQL WHERE条件
python·sql·自动化·excel·pandas
梅雅达编程笔记8 天前
零基础学 Python 第7章 | 字典 dict:键值对存储
开发语言·python·beautifulsoup·numpy·pandas