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 的条目。
- Parameters:
- columnstr 或 str 列表,可选
列名或列名列表,或向量。可以是
pandas.DataFrame.groupby()的任何有效输入。- bystr 或类数组,可选
DataFrame 中用于
pandas.DataFrame.groupby()的列。将为 by 中列的每个值绘制一个箱须图。- axmatplotlib.axes.Axes 类的对象,可选
将由 boxplot 使用的 matplotlib 坐标轴。
- fontsize浮点数或字符串
刻度标签的字体大小(以磅为单位或字符串,例如 large)。
- rot浮点数,默认 0
相对于屏幕坐标系的标签旋转角度(以度为单位)。
- gridbool, default True
设置为 True 将显示网格。
- figsize元组 (宽度, 高度),单位为英寸
创建 matplotlib 图形的大小。
- layout元组 (行数, 列数),可选
例如,(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 数组。
- backendstr,默认 None
用于替换选项
plotting.backend中指定的后端。例如,’matplotlib’。或者,要为整个会话指定plotting.backend,请设置pd.options.plotting.backend。- **kwargs
传递给
matplotlib.pyplot.boxplot()的所有其他绘图关键字参数。
- Returns:
- result
请参阅 Notes。
参见
pandas.Series.plot.hist绘制直方图。
matplotlib.pyplot.boxplotmatplotlib 等效图。
Notes
返回类型取决于 return_type 参数:
‘axes’ : matplotlib.axes.Axes 类的对象
‘dict’ : matplotlib.lines.Line2D 对象的字典
‘both’ : 结构为 (ax, lines) 的命名元组
对于使用
by分组的数据,返回上述类型的 Series 或 NumPy 数组:array(对于return_type = None)
当您想要在绘图后调整线条外观时,请使用
return_type='dict'。在这种情况下,将返回一个包含构成箱体、帽线、异常值线、中位线和须线的 Lines 的字典。Examples
可以通过
df.boxplot()或者指明要使用的列来为 DataFrame 中的每一列创建箱须图:>>> 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'>