pandas.DataFrame.boxplot#
- DataFrame.boxplot(column=None, by=None, ax=None, fontsize=None, rot=0, grid=True, figsize=None, layout=None, return_type=None, backend=None, **kwargs)[源代码]#
从 DataFrame 列中生成箱形图。
从 DataFrame 列中生成一个箱形图,可以选择按其他列分组。箱形图是一种通过四分位数图形化描述数值数据组的方法。箱子从数据的 Q1 到 Q3 四分位数值延伸,中间有一条线表示中位数(Q2)。须从箱子的边缘延伸,显示数据的范围。默认情况下,它们在箱子边缘的 1.5 * IQR(IQR = Q3 - Q1) 范围内延伸,终止于该区间内的最远数据点。离群值绘制为单独的点。
欲了解更多详情,请参见维基百科关于 boxplot 的条目。
- 参数:
- 列str 或 str 列表,可选
列名或名称列表,或向量。可以是任何有效的
pandas.DataFrame.groupby()
输入。- 通过str 或类数组,可选
DataFrame 中的列用于
pandas.DataFrame.groupby()
。每个 by 中的列值将生成一个箱形图。- axmatplotlib.axes.Axes 类的对象,可选
用于箱线图的 matplotlib 轴。
- 字体大小浮点数或字符串
刻度标签字体大小(以点数或字符串表示,例如 large)。
- rot浮点数,默认值为 0
标签相对于屏幕坐标系的旋转角度(以度为单位)。
- 网格布尔值, 默认为 True
将此设置为 True 将显示网格。
- figsize一个以英寸为单位的元组 (宽度, 高度)
在 matplotlib 中创建图形的大小。
- 布局tuple (行, 列), 可选
例如,(3, 5) 将使用 3 行和 5 列显示子图,从左上角开始。
- return_type{‘axes’, ‘dict’, ‘both’} 或 None, 默认 ‘axes’
要返回的对象类型。默认是
axes
。‘axes’ 返回绘制箱线图的 matplotlib 轴。
‘dict’ 返回一个字典,其值是箱线图的 matplotlib 线条。
‘both’ 返回一个包含轴和字典的命名元组。
当使用
by
进行分组时,会返回一个映射列到return_type
的 Series。如果
return_type
是 None,则返回一个与layout
形状相同的轴的 NumPy 数组。
- 后端str, 默认为 None
要使用的后端,而不是选项
plotting.backend
中指定的后端。例如,’matplotlib’。或者,要为整个会话指定plotting.backend
,请设置pd.options.plotting.backend
。- **kwargs
所有其他要传递给
matplotlib.pyplot.boxplot()
的绘图关键字参数。
- 返回:
- result
请参阅注释。
参见
Series.plot.hist
制作一个直方图。
matplotlib.pyplot.boxplot
Matplotlib 等效图。
备注
返回类型取决于 return_type 参数:
‘axes’ : matplotlib.axes.Axes 类的对象
‘dict’ : matplotlib.lines.Line2D 对象的字典
‘both’ : 一个具有结构 (ax, lines) 的 namedtuple
对于使用
by
分组的数据,返回上述内容的 Series 或 numpy 数组:array
(对于return_type = None
)
当你想在绘图后调整线条的外观时,使用
return_type='dict'
。在这种情况下,返回一个包含构成箱形图、帽、离群值、中位数和须的线条的字典。示例
箱线图可以通过
df.boxplot()
为数据框中的每一列创建,或者指定要使用的列:>>> np.random.seed(1234) >>> df = pd.DataFrame(np.random.randn(10, 4), ... columns=['Col1', 'Col2', 'Col3', 'Col4']) >>> boxplot = df.boxplot(column=['Col1', 'Col2', 'Col3'])
通过使用选项
by
,可以创建按第三个变量的值分组的变量分布箱线图。例如:>>> df = pd.DataFrame(np.random.randn(10, 2), ... columns=['Col1', 'Col2']) >>> df['X'] = pd.Series(['A', 'A', 'A', 'A', 'A', ... 'B', 'B', 'B', 'B', 'B']) >>> boxplot = df.boxplot(by='X')
一个字符串列表(即
['X', 'Y']
)可以传递给 boxplot,以便通过 x 轴中的变量组合对数据进行分组:>>> df = pd.DataFrame(np.random.randn(10, 3), ... columns=['Col1', 'Col2', 'Col3']) >>> df['X'] = pd.Series(['A', 'A', 'A', 'A', 'A', ... 'B', 'B', 'B', 'B', 'B']) >>> df['Y'] = pd.Series(['A', 'B', 'A', 'B', 'A', ... 'B', 'A', 'B', 'A', 'B']) >>> boxplot = df.boxplot(column=['Col1', 'Col2'], by=['X', 'Y'])
箱线图的布局可以通过向
layout
提供一个元组来进行调整:>>> boxplot = df.boxplot(column=['Col1', 'Col2'], by='X', ... layout=(2, 1))
可以对箱线图进行额外的格式化,例如抑制网格 (
grid=False
),旋转 x 轴上的标签(例如rot=45
)或更改字体大小(例如fontsize=15
):>>> boxplot = df.boxplot(grid=False, rot=45, fontsize=15)
参数
return_type
可以用来选择 boxplot 返回的元素类型。当选择return_type='axes'
时,绘制箱线图的 matplotlib 轴将被返回:>>> boxplot = df.boxplot(column=['Col1', 'Col2'], return_type='axes') >>> type(boxplot) <class 'matplotlib.axes._axes.Axes'>
当使用
by
进行分组时,会返回一个映射列到return_type
的 Series:>>> boxplot = df.boxplot(column=['Col1', 'Col2'], by='X', ... return_type='axes') >>> type(boxplot) <class 'pandas.core.series.Series'>
如果
return_type
是 None,则返回一个与layout
形状相同的轴的 NumPy 数组:>>> boxplot = df.boxplot(column=['Col1', 'Col2'], by='X', ... return_type=None) >>> type(boxplot) <class 'numpy.ndarray'>