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) ,结束于该间隔内最远的数据点。异常值被绘制为单独的点。

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

参数
数据数据框

要可视化的数据。

str列或 str 列表,可选

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

通过str 或类似数组,可选

DataFrame 中的列到pandas.DataFrame.groupby().将针对by中的每个列值绘制一个箱线图。

matplotlib.axes.Axes 类的ax对象,可选

boxplot 使用的 matplotlib 轴。

字体大小float 或 str

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

rot浮点型,默认 0

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

grid bool,默认 True

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

Figsize一个元组(宽度,高度),以英寸为单位

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

布局元组(行,列),可选

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

return_type {'axes', 'dict', 'both'} 或 None, 默认 'axes'

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

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

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

  • 'both' 返回一个带有轴和字典的命名元组。

  • 当使用 进行分组时,将返回by映射列到的系列 。return_type

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

**夸格

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

返回
结果

参见注释。

也可以看看

pandas.Series.plot.hist

制作直方图。

matplotlib.pyplot.boxplot

Matplotlib 等效图。

笔记

返回类型取决于return_type参数:

  • 'axes' : matplotlib.axes.Axes 类的对象

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

  • 'both' :具有结构(斧头,线)的命名元组

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

  • 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'])  

可以使用选项创建按第三个变量的值分组的变量分布箱线图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 轴中的变量组合对数据进行分组:['X', 'Y']

>>> 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)  

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

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

当使用 进行分组时, 将返回by映射列到的 Series :return_type

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

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

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