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_type
是 None ,具有相同形状的轴数组NumPylayout
返回。
- **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数组: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']
),以便通过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'])
BoxPlot的布局可以调整,给出一个元组
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._subplots.AxesSubplot'>
使用进行分组时
by
,一系列将列映射到return_type
返回:>>> boxplot = df.boxplot(column=['Col1', 'Col2'], by='X', ... return_type='axes') >>> type(boxplot) <class 'pandas.core.series.Series'>
如果
return_type
是 None ,具有相同形状的轴数组NumPylayout
返回:>>> boxplot = df.boxplot(column=['Col1', 'Col2'], by='X', ... return_type=None) >>> type(boxplot) <class 'numpy.ndarray'>