当前位置: 首页 > news >正文

【Pandas】pandas DataFrame boxplot

Pandas2.2 DataFrame

Plotting

方法描述
DataFrame.plot([x, y, kind, ax, …])用于对 DataFrame 数据进行可视化的一个便捷接口
DataFrame.plot.area([x, y, stacked])用于绘制 面积图(Area Plot) 的方法
DataFrame.plot.bar([x, y])用于绘制 垂直柱状图(Bar Chart) 的方法
DataFrame.plot.barh([x, y])用于绘制 水平柱状图(Horizontal Bar Chart) 的方法
DataFrame.plot.box([by])用于绘制 箱型图(Boxplot) 的方法
DataFrame.plot.density([bw_method, ind])用于绘制 密度图(Kernel Density Estimate, KDE) 的方法
DataFrame.plot.hexbin(x, y[, C, …])用于绘制 六边形箱图(Hexbin Plot) 的方法
DataFrame.plot.hist([by, bins])用于绘制 直方图(Histogram) 的方法
DataFrame.plot.kde([bw_method, ind])用于绘制 核密度估计图(Kernel Density Estimate, KDE) 的方
DataFrame.plot.line([x, y])用于绘制 折线图(Line Plot) 的方法
DataFrame.plot.pie(**kwargs)用于绘制 饼图(Pie Chart) 的方法
DataFrame.plot.scatter(x, y[, s, c])用于绘制 散点图(Scatter Plot) 的方法
DataFrame.boxplot([column, by, ax, …])用于绘制 箱型图(Boxplot) 的方法

pandas.DataFrame.boxplot()

pandas.DataFrame.boxplot() 是用于绘制 箱型图(Boxplot) 的方法,它是对 matplotlib.pyplot.boxplot() 的封装,专为 DataFrame 设计,支持多列数据的批量可视化。


📌 方法签名
DataFrame.boxplot(column=None,by=None,ax=None,fontsize=None,rot=0,grid=True,figsize=None,layout=None,return_type='axes',backend=None,**kwargs
)
参数说明:
参数类型描述
columnstr 或 list(可选)要绘制的列名。若为 None,则绘制所有数值列。
bystr 或 Series / array-like(可选)按该变量分组绘图(常用于分类变量)。
axmatplotlib.axes.Axes(可选)指定绘图的子图对象。
fontsizeint(可选)设置标签字体大小。
rotint,默认 0X 轴标签旋转角度(便于阅读长标签)。
gridbool,默认 True是否显示网格线。
figsizetuple(宽, 高)控制整个图形大小。
layouttuple(行数, 列数)控制多个子图的布局。
return_typestr(可选)返回类型:
- 'axes':返回 Axes 对象
- 'dict':返回 boxplot 数据结构
- 'both':返回两者
backendstr(可选)指定绘图后端(如 'matplotlib')。
**kwargs其他参数支持所有 matplotlib.pyplot.boxplot() 的参数,如颜色、样式等。

✅ 示例及结果
示例 1:基本箱型图(绘制所有数值列)
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np# 创建一个包含随机数据的 DataFrame
df = pd.DataFrame({'A': np.random.normal(0, 1, 100),'B': np.random.normal(5, 2, 100),'C': np.random.normal(-5, 3, 100)
})# 绘制箱型图
df.boxplot()
plt.title('Basic Boxplot')
plt.ylabel('Value')
plt.show()

输出:

  • 显示三列 A、B、C 的箱型图。
  • 每个箱体表示对应列的数据分布,包括中位数、四分位数和异常值。

示例 2:指定要绘制的列
# 只绘制 A 和 B 列的箱型图
df.boxplot(column=['A', 'B'])
plt.title('Boxplot of A and B')
plt.ylabel('Value')
plt.show()

输出:

  • 仅显示 A 和 B 列的箱型图。

示例 3:按某一列分组绘制箱型图(使用 by 参数)
# 添加一个分类变量 'Group'
df['Group'] = ['X', 'Y'] * 50# 按 'Group' 分组绘制 A 列的箱型图
df.boxplot(column='A', by='Group', figsize=(8, 6))
plt.suptitle('')
plt.title('Boxplot of A by Group')
plt.ylabel('Value')
plt.xlabel('Group')
plt.grid(True)
plt.show()

输出:

  • 对每个分组 'X''Y',分别绘制 A 列的箱型图。
  • 可以比较不同组别的数据分布差异。

示例 4:自定义样式(颜色、标签旋转、字体大小)
df.boxplot(column=['A', 'B', 'C'],by='Group',fontsize=10,rot=45,  # X 轴标签旋转 45°grid=False,figsize=(10, 6),color=dict(boxes='r', whiskers='k', medians='blue', caps='g'),patch_artist=True  # 填充颜色
)
plt.suptitle('Customized Grouped Boxplots')
plt.title('With Color and Rotation')
plt.show()

输出:

  • 自定义了箱体颜色、字体大小、标签旋转角度。
  • 不再显示网格线。
  • 箱体填充颜色,中位数用蓝色突出显示。

示例 5:多列分组并控制子图布局
# 同时绘制 A、B、C 列,并按 Group 分组
df.boxplot(column=['A', 'B', 'C'],by='Group',layout=(1, 3),  # 一行三列排布figsize=(12, 5)
)
plt.suptitle('Multiple Boxplots by Group')
plt.tight_layout()
plt.show()

输出:

  • 每个子图展示一个列在两个组别中的箱型图。
  • 使用 layout=(1, 3) 控制子图排列方式。

📝 总结
特性说明
图表类型箱型图(Boxplot)
默认行为对所有数值列绘制箱型图
分组支持使用 by 参数实现按某一列分组绘图
用途展示数据分布、识别异常值
自定义支持颜色、字体、旋转、标题、网格、子图布局等设置
http://www.dtcms.com/a/268942.html

相关文章:

  • ch04 部分题目思路
  • Logseq 插件开发实战四:发布到官方插件市场
  • 【VSCode 插件离线安装包下载方法分享】
  • 【PyTorch】PyTorch中torch.nn模块的循环层
  • Microsoft Visual Studio离线安装(以2022/2019为例)
  • Python脚本保护工具库之pyarmor使用详解
  • Redis常用数据结构以及多并发场景下的使用分析:list类型
  • Qt的第一个程序(2)
  • Karmada Multi-Ingress(MCI)技术实践
  • verilog中timescale指令的使用
  • javaweb———html
  • 【taro react】 ---- RuiVerifySlider 行为验证码之滑动拼图使用【天爱验证码 tianai-captcha 】实现
  • android ui thread和render thread
  • 上海新华医院奉贤院区:以元宇宙技术重构未来医疗生态
  • RAG 之 Prompt 动态选择的三种方式
  • 华为OD机试 2025B卷 - 小明减肥(C++PythonJAVAJSC语言)
  • 编辑器Vim的快速入门
  • Session的工作机制及安全性分析
  • Qt(信号槽机制)
  • 解数独(C++版本)
  • 永磁同步电机PMSM的无传感器位置控制
  • dotnet publish 发布后的项目,例如asp.net core mvc项目如何在ubuntu中运行,并可外部访问
  • 自动化运维:使用Ansible简化日常任务
  • Word 怎么让字变大、变粗、换颜色?
  • 运维打铁: PostgreSQL 数据库性能优化与高可用方案
  • Flutter 入门
  • 能源管理综合平台——分布式能源项目一站式监控
  • 海岛分布式能源系统调度 粒子群算法优化
  • 基于拉普拉斯变换与分离变量法的热传导方程求解
  • 网安系列【10】之深入浅出CSRF攻击:从原理到实战(DVWA靶场演示)