matplotlib基础绘图命令之violinplot

本文介绍了matplotlib库中的violinplot方法,用于创建小提琴图。文章详细讲解了vert参数、showmeans参数、showmedians参数和showextrema参数的用法,展示了如何通过这些参数控制小提琴图的显示,包括方向、均值、中位数和极值的显示。此外,还提及了如何通过返回值进行个性化调整,增强图表的视觉效果。文章强调了matplotlib的基础性及其灵活性,适合数据可视化初学者参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

在matplotlib中,violinplot方法用于绘制小提琴图,基本用法如下

plt.violinplot(dataset=np.random.normal(size=1000))

输出结果如下

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

1. vert,控制图形的方向

2. showmeans, 是否在图中显示均值

3. showmedians,是否在图中显示中位数

4. showextrema, 是否在图中显示最大值和最小值

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

1. vert

vert参数的默认值为True,表示竖直方向的小提琴图,当取值WieFalse时,绘制水平方向的小提琴图,用法如下

plt.violinplot(dataset=np.random.normal(size=1000),vert=False)

输出结果如下

2. showmeans

showmeans参数的默认值为False, 此时不在图中显示均值,当取值为True时,会用横线表示均值,用法如下

plt.violinplot(dataset=np.random.normal(size=1000),showmeans=True)

输出结果如下

3.  showmedians

showmedians参数的默认值为False, 此时不在图中显示中位数,当取值为True时,会用横线表示中位数,用法如下

plt.violinplot(dataset=np.random.normal(size=1000),showmedians=True)

输出结果如下

4. showextrema

showextrema参数的默认值为True, 此时在图中用类似error bar的方式来显示最小值和最大值,当取值为False时,不显示对应的值,用法如下

plt.violinplot(dataset=np.random.normal(size=1000),showextrema=False)

输出结果如下

和boxplot类似, 对于violinplot的个性化调整也是通过其返回值来实现,在实际运用中,主要是通过返回值中的bodies元素开设置颜色,用法如下

np.random.seed(19680801)
data = [np.random.normal(size=500), np.random.normal(size=1000)]
violin = plt.violinplot(dataset=data, showextrema=False)
for patch in violin['bodies']:
    patch.set_facecolor('#D43F3A')
    patch.set_edgecolor('black')
    patch.set_alpha(1)

for i,d in enumerate(data):
    min_value,quantile1, median, quantile3, max_value = np.percentile(d, [0, 25, 50, 75, 100])
    print(median)
    plt.scatter(i+1, median, color='white',zorder=4)
    plt.vlines(i+1,quantile1, quantile3, lw=9, zorder=3)
    plt.vlines(i+1,min_value, max_value, zorder=2)

plt.xticks(ticks=[1,2], labels=['A', 'B'])

上述代码首先通过bodies元素,设置了小提琴图中的填充色和边框颜色,透明度等信息,然后通过手动计算百分位数的位置,对其进行了个性化调整,输出结果如下

matplotlib作为基础的绘图函数,和seaborn等更高封装的可视化模块相比,在直接出图的效果上可能并不直观简便,但是确保留了足够的灵活性。

·end·

—如果喜欢,快分享给你的朋友们吧—

原创不易,欢迎收藏,点赞,转发!生信知识浩瀚如海,在生信学习的道路上,让我们一起并肩作战!

本公众号深耕耘生信领域多年,具有丰富的数据分析经验,致力于提供真正有价值的数据分析服务,擅长个性化分析,欢迎有需要的老师和同学前来咨询。

  更多精彩

  写在最后

转发本文至朋友圈,后台私信截图即可加入生信交流群,和小伙伴一起学习交流。

扫描下方二维码,关注我们,解锁更多精彩内容!

一个只分享干货的

生信公众号

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值