欢迎关注”生信修炼手册”!
在matplotlib中,boxplot方法用于绘制箱体图,基本用法如下
代码语言:javascript复制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时,会计算中位数的置信区间,并在图中将置信区间与中位数相连,用法如下
代码语言:javascript复制plt.boxplot(x=np.random.normal(size=1000), notch=True)
输出结果如下
2. sym
sym控制离群点的样式,默认是白色的圆形,可以用简写的方式来指定颜色和性状,用法如下
代码语言:javascript复制plt.boxplot(x=np.random.normal(size=1000), sym='b ')
输出结果如下
当sym取值为空时,表示不显示离群点,用法如下
代码语言:javascript复制plt.boxplot(x=np.random.normal(size=1000), sym='')
输出结果如下
3. vert
vert控制箱体图的方向,默认值为True,表示竖直的箱体图,当取值为False时,绘制水平方向的箱体图,用法如下
代码语言:javascript复制plt.boxplot(x=np.random.normal(size=1000), vert=False)
输出结果如下
4. patch_artist
patch_artist控制箱体图的填充,默认值为False, 此时箱体图的颜色指定的是表框的颜色,当取值为True时,color参数的值为箱体图的填充色,用法如下
代码语言:javascript复制plt.boxplot(x=np.random.normal(size=1000), patch_artist=True)
输出结果如下
5. showmeans
showmeans用于在箱体图中显示均值,默认值为False, 当取值为True时,在箱体图中显示均值,用法如下
代码语言:javascript复制plt.boxplot(x=np.random.normal(size=1000),showmeans=True)
输出结果如下
6. labels
labels参数指定x轴的坐标,默认是从1开始的数值下标,通过labels参数可以自定义x轴坐标,用法如下
代码语言:javascript复制plt.boxplot(x=[np.random.normal(size=500), np.random.normal(size=1000)],labels=['sampleA', 'sampleB'])
输出结果如下
在boxplot方法中,并没有内置的参数来直接修改箱体图的颜色,线条的类型等,此时我们需要借助函数的返回值来实现,下列代码展示了利用返回值来设置箱体图填充色的技巧,代码如下
代码语言:javascript复制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种元素
代码语言:javascript复制dict_keys(['whiskers', 'caps', 'boxes', 'medians', 'fliers', 'means'])
1. whiskers, 对应箱体图中箱体上下两侧竖直的线条
2. caps, 对应箱体图中竖直线条端点的水平线段
3. boxes, 对应箱体图中的主体方框
4. medians,对应箱体图中的中位数线段
5. fiers,对应箱体图中的离群点
6. means,对应箱体图中表示均值的点
通过对应的key,可以访问对应的元素,在上述自定义箱体图颜色的代码中,就是通过boxes来获取对应的元素,然后通过set_color方法来设置颜色,类似地,也可以对箱体图中的其他元素进行个性化设置。