【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
)
参数说明:
参数 | 类型 | 描述 |
---|---|---|
column | str 或 list(可选) | 要绘制的列名。若为 None,则绘制所有数值列。 |
by | str 或 Series / array-like(可选) | 按该变量分组绘图(常用于分类变量)。 |
ax | matplotlib.axes.Axes(可选) | 指定绘图的子图对象。 |
fontsize | int(可选) | 设置标签字体大小。 |
rot | int,默认 0 | X 轴标签旋转角度(便于阅读长标签)。 |
grid | bool,默认 True | 是否显示网格线。 |
figsize | tuple(宽, 高) | 控制整个图形大小。 |
layout | tuple(行数, 列数) | 控制多个子图的布局。 |
return_type | str(可选) | 返回类型: - 'axes' :返回 Axes 对象- 'dict' :返回 boxplot 数据结构- 'both' :返回两者 |
backend | str(可选) | 指定绘图后端(如 '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 参数实现按某一列分组绘图 |
用途 | 展示数据分布、识别异常值 |
自定义 | 支持颜色、字体、旋转、标题、网格、子图布局等设置 |