首先看一段例子:
import pandas as pd
from pandas import DataFrame,Series
df = DataFrame(np.random.randn(10, 2), columns=['Col1', 'Col2'])
boxplot=df.boxplot()

通过boxplot方法,我们直接得到了箱型图。
boxplot方法官方介绍如下:
DataFrame.
boxplot
(column=None, by=None, ax=None, fontsize=None, rot=0, grid=True, figsize=None, layout=None, return_type=None, **kwds)
方法说明
boxplot方法只是用于DataFrame,Series对象没有此方法
参数说明
column,默认为None,输入为str 或由str构成的list,其作用是指定要进行箱型图分析的列
by,默认为None,str or array-like,其作用为pandas的group by,通过指定by=‘columns’,可进行多组合箱型图分析
ax,matplotlib.axes.Axes的对象,没有太大作用
fontsize,箱型图坐标轴字体大小
rot,箱型图坐标轴旋转角度
grid,箱型图网格线是否显示
figsize,箱型图窗口尺寸大小
layout,必须配合by 一起使用,类似于subplot 的画布分区域功能
return_type,指定返回对象的类型,默认为None,可输入的参数为‘axes’,‘dict’,‘both’,当与by一起使用是,返回的对象为Series或array(for return_type = None
)
箱型图返回结果说明:
当指定return_type=‘dict’时,其结果值为一个字典,字典索引为固定的'whiskers'、'caps'、'boxes'、'fliers'、'means'
boxplot=df.boxplot(return_type='dict')
boxplot
Out[132]:
{'whiskers': [<matplotlib.lines.Line2D at 0x26b61ec81d0>,
<matplotlib.lines.Line2D at 0x26b61ec8668>,
<matplotlib.lines.Line2D at 0x26b61ec6f98>,
<matplotlib.lines.Line2D at 0x26b61b7d400>],
'caps': [<matplotlib.lines.Line2D at 0x26b61ec8a90>,
<matplotlib.lines.Line2D at 0x26b61ec8eb8>,
<matplotlib.lines.Line2D at 0x26b61b7d828>,
<matplotlib.lines.Line2D at 0x26b61b7dc50>],
'boxes': [<matplotlib.lines.Line2D at 0x26b61ec8080>,
<matplotlib.lines.Line2D at 0x26b61ec6b38>],
'medians': [<matplotlib.lines.Line2D at 0x26b61ec6320>,
<matplotlib.lines.Line2D at 0x26b61b560b8>],
'fliers': [<matplotlib.lines.Line2D at 0x26b61ec6748>,
<matplotlib.lines.Line2D at 0x26b61b564e0>],
'means': []}
此时,通过指定索引值获取相应数据
boxplot['fliers'][1].get_xdata()
Out[137]: array([2.])
boxplot['fliers'][1].get_ydata()
Out[138]: array([1.79881989])