当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python 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 列制作box-and-whisker 图,可选择按其他一些列分组。箱线图是一种通过四分位数以图形方式描绘数值数据组的方法。该框从数据的 Q1 到 Q3 四分位值延伸,在中位数 (Q2) 处有一条线。胡须从框的边延伸以显示数据的范围。默认情况下,它们从框的边延伸不超过1.5 * IQR (IQR = Q3 - Q1),在该间隔内最远的数据点处结束。异常值被绘制为单独的点。

有关详细信息,请参阅 Wikipedia 的 boxplot 条目。

参数

columnstr 或 str 列表,可选

列名或名称列表,或向量。可以是 pandas.DataFrame.groupby() 的任何有效输入。

bystr 或array-like,可选

DataFrame 中的列到 pandas.DataFrame.groupby() 。每个 by 中的列值将完成一个 box-plot 。

axmatplotlib.axes.Axes 类的对象,可选

boxplot 要使用的 matplotlib 轴。

fontsize浮点数或 str

刻度标签字体大小(以磅为单位或作为字符串)(例如,large)。

rot整数或浮点数,默认为 0

标签相对于屏幕坐标系的旋转角度(以度为单位)。

grid布尔值,默认为真

将此设置为 True 将显示网格。

figsize以英寸为单位的元组(宽度,高度)

在 matplotlib 中创建的图形的大小。

layout元组(行、列),可选

例如,(3, 5) 将使用 3 列和 5 行显示子图,从左上角开始。

return_type{‘axes’, ‘dict’, ‘both’} 或无,默认 ‘axes’

要返回的对象类型。默认值为 axes

  • ‘axes’ 返回绘制箱线图的 matplotlib 轴。

  • ‘dict’ 返回一个字典,其值是箱线图的 matplotlib 线。

  • ‘both’ 返回一个带坐标轴和字典的命名元组。

  • 当与 by 分组时,将返回一个将列映射到 return_type 的系列。

    如果 return_typeNone ,则返回与 layout 形状相同的 NumPy 轴数组。

backendstr,默认无

要使用的后端,而不是选项 plotting.backend 中指定的后端。例如,‘matplotlib’。或者,要为整个会话指定 plotting.backend,请设置 pd.options.plotting.backend

**kwargs

要传递给 matplotlib.pyplot.boxplot() 的所有其他绘图关键字参数。

返回

结果

请参阅注释。

注意

返回类型取决于 return_type 参数:

  • ‘axes’:matplotlib.axes.Axes 类的对象

  • ‘dict’:matplotlib.lines.Line2D 对象的字典

  • ‘both’:具有结构(ax,lines)的命名元组

对于与 by 分组的数据,返回上述系列或 numpy 数组:

  • Series

  • array(对于 return_type = None )

如果要在绘图后调整线条的外观,请使用 return_type='dict'。在这种情况下,将返回一个包含组成盒子、大写字母、传单、中位数和胡须的 Lines 的字典。

例子

可以通过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'])
pandas-DataFrame-boxplot-1.png

可以使用选项 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')
pandas-DataFrame-boxplot-2.png

可以将字符串列表(即 ['X', 'Y'] )传递给箱线图,以便通过 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'])
pandas-DataFrame-boxplot-3.png

可以调整箱线图的布局,为 layout 提供一个元组:

>>> boxplot = df.boxplot(column=['Col1', 'Col2'], by='X',
...                      layout=(2, 1))
pandas-DataFrame-boxplot-4.png

可以对箱线图进行其他格式化,例如抑制网格(grid=False)、在 x 轴上旋转标签(即 rot=45 )或更改字体大小(即 fontsize=15 ):

>>> boxplot = df.boxplot(grid=False, rot=45, fontsize=15)
pandas-DataFrame-boxplot-5.png

参数 return_type 可用于选择 boxplot 返回的元素类型。选择 return_type='axes' 时,将返回绘制箱线图的 matplotlib 轴:

>>> boxplot = df.boxplot(column=['Col1', 'Col2'], return_type='axes')
>>> type(boxplot)
<class 'matplotlib.axes._subplots.AxesSubplot'>

当使用 by 分组时,将返回一个将列映射到 return_type 的系列:

>>> boxplot = df.boxplot(column=['Col1', 'Col2'], by='X',
...                      return_type='axes')
>>> type(boxplot)
<class 'pandas.core.series.Series'>

如果 return_typeNone ,则返回与 layout 形状相同的 NumPy 轴数组:

>>> boxplot = df.boxplot(column=['Col1', 'Col2'], by='X',
...                      return_type=None)
>>> type(boxplot)
<class 'numpy.ndarray'>

相关用法


注:本文由纯净天空筛选整理自pandas.pydata.org大神的英文原创作品 pandas.DataFrame.boxplot。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。