matplotlib基础绘图命令之boxplot

时间:2022-07-23
本文章向大家介绍matplotlib基础绘图命令之boxplot,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

欢迎关注”生信修炼手册”!

在matplotlib中,boxplot方法用于绘制箱体图,基本用法如下

plt.boxplot(x=np.random.normal(size=1000))

输出结果如下

boxplot方法常用的参数有以下几个

1. notch,控制箱体图的形状

2. sym, 控制离群点的样式

3. vert,控制箱体的方向

4. patch_artist,进行箱体图的颜色填充

5. showmeans,显示均值

6. labels, 指定x轴的坐标

下面来具体看下其中几个参数的用法

1. notch

notch控制是否在图中显示中位数的置信区间,默认值为False, 当取值为True时,会计算中位数的置信区间,并在图中将置信区间与中位数相连,用法如下

plt.boxplot(x=np.random.normal(size=1000), notch=True)

输出结果如下

2. sym

sym控制离群点的样式,默认是白色的圆形,可以用简写的方式来指定颜色和性状,用法如下

plt.boxplot(x=np.random.normal(size=1000), sym='b+')

输出结果如下

当sym取值为空时,表示不显示离群点,用法如下

plt.boxplot(x=np.random.normal(size=1000), sym='')

输出结果如下

3. vert

vert控制箱体图的方向,默认值为True,表示竖直的箱体图,当取值为False时,绘制水平方向的箱体图,用法如下

plt.boxplot(x=np.random.normal(size=1000), vert=False)

输出结果如下

4. patch_artist

patch_artist控制箱体图的填充,默认值为False, 此时箱体图的颜色指定的是表框的颜色,当取值为True时,color参数的值为箱体图的填充色,用法如下

plt.boxplot(x=np.random.normal(size=1000), patch_artist=True)

输出结果如下

5. showmeans

showmeans用于在箱体图中显示均值,默认值为False, 当取值为True时,在箱体图中显示均值,用法如下

plt.boxplot(x=np.random.normal(size=1000),showmeans=True)

输出结果如下

6. labels

labels参数指定x轴的坐标,默认是从1开始的数值下标,通过labels参数可以自定义x轴坐标,用法如下

plt.boxplot(x=[np.random.normal(size=500), np.random.normal(size=1000)],labels=['sampleA', 'sampleB'])

输出结果如下

在boxplot方法中,并没有内置的参数来直接修改箱体图的颜色,线条的类型等,此时我们需要借助函数的返回值来实现,下列代码展示了利用返回值来设置箱体图填充色的技巧,代码如下

box = plt.boxplot(x=[np.random.normal(size=500), np.random.normal(size=1000)], patch_artist=True, labels=['sampleA', 'sampleB'])
colors = ['lightblue', 'lightgreen']
for patch, color in zip(box['boxes'], colors):
    patch.set_color(color)

输出结果如下

boxplot的返回值是一个字典,包括了箱体图中的各个元素,具体包括了以下6种元素

dict_keys(['whiskers', 'caps', 'boxes', 'medians', 'fliers', 'means'])

1. whiskers, 对应箱体图中箱体上下两侧竖直的线条

2. caps, 对应箱体图中竖直线条端点的水平线段

3. boxes, 对应箱体图中的主体方框

4. medians,对应箱体图中的中位数线段

5. fiers,对应箱体图中的离群点

6. means,对应箱体图中表示均值的点

通过对应的key,可以访问对应的元素,在上述自定义箱体图颜色的代码中,就是通过boxes来获取对应的元素,然后通过set_color方法来设置颜色,类似地,也可以对箱体图中的其他元素进行个性化设置。