pandas.plotting.boxplot#

pandas.plotting.boxplot(data, column=None, by=None, ax=None, fontsize=None, rot=0, grid=True, figsize=None, layout=None, return_type=None, **kwargs)[源代码]#

从DataFrame列制作框图。

从DataFrame列绘制方框和胡须图,可以选择按其他一些列进行分组。盒图是一种通过四分位数以图形方式描述一组数字数据的方法。该框从数据的Q1到Q3四分位数值延伸,在中位数(Q2)处有一条线。胡须从长方体的边缘延伸,以显示数据的范围。默认情况下,它们的扩展不超过 1.5 * IQR (IQR = Q3 - Q1) 从框的边缘开始,在该间隔内最远的数据点结束。异常值被绘制为单独的点。

有关更多详细信息,请参阅维基百科的 boxplot

参数
column字符串或字符串列表,可选

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

by字符串或类似数组,可选

数据帧中的列设置为 pandas.DataFrame.groupby() 。中的每个柱状值将完成一个框图 by

axMatplotlib.axs.ax类的对象,可选

Boxlot要使用的matplotlib轴。

fontsize浮点型或字符串

勾选标签的字体大小(以磅为单位或字符串)(例如, large )。

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

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

grid布尔值,默认为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 返回。

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

**kwargs

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

退货
结果

请参见注释。

参见

Series.plot.hist

做一个直方图。

matplotlib.pyplot.boxplot

Matplotlib等效图。

注意事项

返回类型取决于 return_type 参数:

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

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

  • ‘Both’:具有结构(AX、LINES)的命名元组

对于使用分组的数据 by ,返回上述的一系列或一个Numy数组:

  • Series

  • 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'])  
../../_images/pandas-plotting-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')
../../_images/pandas-plotting-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'])
../../_images/pandas-plotting-boxplot-3.png

BoxPlot的布局可以调整,给出一个元组 layout

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

可以对框图执行其他格式设置,如隐藏网格 (grid=False ),在x轴上旋转标签(即 rot=45 )或更改字体大小(即 fontsize=15 ):

>>> boxplot = df.boxplot(grid=False, rot=45, fontsize=15)  
../../_images/pandas-plotting-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 ,具有相同形状的轴数组NumPy layout 返回:

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