- 首先,使用dataframe.boxplot()画图时,参数参考pandas.DataFrame
DataFrame.boxplot(column = None,
by = None,ax = None,
fontsize = None,
rot = 0,grid = True,
figsize = None,
layout = None,
return_type = None,** kwds )
参数说明
column : str或str的列表,可选列名或名称列表或向量。可以是任何有效的输入
pandas.DataFrame.groupby()。
by : str或array-like,可选DataFrame中的列 pandas.DataFrame.groupby()。一箱线图将每列的值来完成的。
ax : 类matplotlib.axes.Axes的对象,可选由boxplot使用的matplotlib轴。
fontsize : float或str以标记或字符串(例如,大)标记标签字体大小。
rot : int或float,默认为0标签的旋转角度(以度为单位)相对于屏幕坐标系。
grid : 布尔值,默认为True将此设置为True将显示网格。
figsize : 以英寸为单位的元组(宽度,高度)在matplotlib中创建的图形的大小。
layout : 元组(行,列),可选例如,(3,5)将从左上角开始使用3列和5行显示子图。
return_type : {'axes','dict','both'}或None,默认'axes'要返回的那种对象。默认是axes。'axes'返回绘制boxplot的matplotlib轴。'dict'返回一个字典,其值是boxplot的matplotlib行。'both'返回一个带有轴和dict的namedtuple。分组时by,return_type返回一系列映射列 。如果return_type为None,layout则返回具有相同形状的NumPy轴阵列。** kwds要传递给所有其他绘图关键字参数 matplotlib.pyplot.boxplot()。
- 同时经对比后发现,参数不仅可以使用以上列出的,还可以箱线图参数
DataFrame.boxplot(sym=‘.’,
vert = True,
whis = 1.5,
patch_artist = True,
meanline = False,
showmeans = True,
showcaps = True,
notch = False,
return _type= 'dict')
参数说明
sym:表示异常点形状
vert:是否垂直,箱线图是横向的(False),还是竖向的(True)
whis:默认1.5,也可以设置区间比如[5,95],代表强制上下边缘为数据95%和5%的位置
patch_artist:上下四分位框内是否填充,True是填充
meanline:是否用线的形式表示均值,默认用点表示
showmeans:是否显示均值,默认不显示
shoubox:是否显示边缘线,箱线图顶端和末端的两条线默认显示
showfliers:是否显示异常值
notch:中间箱体是否缺口
return_type:返回类型
positions:指定箱线图的位置
widths:指定箱线图的宽度,默认为0.5
- 比如我画的箱线图
plt.figure(figsize=(11.5, 6.5))
cop_df.boxplot(showmeans=True, fontsize=8, notch = True, sym = '.', grid=False)
用jupyter画的图,最开始保存下来的图已经被我删了…
能看到右上角有一个灰色的小框,不知道为什么就出现了
解决办法:
调整图像大小,如下图
plt.figure(figsize=(9.5, 6.5))
df.boxplot(showmeans=True, fontsize=7, notch = True, sym = '.', grid=False)
参数解释:
通过showmeans=True
设置出现平均值,默认为三角形,通过fontsize=7
设置坐标轴字体大小,设置notch = True
设置箱体中位线的地方收回,设置sym = '.'
异常点的形状为小圆点,设置grid=False
不要图中的网格。