ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

如何用Python matplotlib 绘制提琴图,你get到了吗

2021-12-22 15:02:16  阅读:255  来源: 互联网

标签:set 提琴 get Python pyplot matplotlib pc plt violinplot


Hello,大家好,我是程序汪小陈~

今天向大家分享的是如何用Python matplotlib 绘制提琴图表示数据分布情况

提琴图.png

首先,我们学习matplotlib.pyplot.violinplot绘制提琴图相关属性学习,Let's go~

1. 提琴图概述

  • 什么是提琴图?

    • 提琴图是外形类似提琴,具有箱型图和密度图的特征
    • 提琴图是用来显示数据分布和出现概率的密度
    • 提琴图同展示一组数据的中位数、四分位数范围、密度、95%置信区间

    image.png

  • 提琴图应用场景

    • 提琴图可以用于比较不同样本之间的密度分布情况
    • 提琴图可用于显示数据完整的分布情况
    • 提琴图常用于在制作精确图表前对离散数据整理
    • 提琴图通常用于基因样本分布、人口年龄分布等等
  • 获取提琴图方法

import matplotlib.pyplot as plt 
plt.violinplot(dataset)

2. 提琴图属性

  • 设置提琴图位置

    • 关键字:vert
    • 默认值为:True
    • 当vert为True时则创建垂直提琴图
    • 当vert为False时则创建水平提琴图
  • 设置提琴宽度

    • 关键字:width
    • 默认值为:0.5
  • 设置提琴数据

    • 设置显示均值关键字:showmeans,默认为False
    • 设置显示极值关键字:showextrema,默认为True
    • 设置显示中值关键字:showmedians,默认为False
  • 设置提琴样式

    • 需要使用pyplot.violinplot()返回字段“bodies”
    • 结合for循环遍历pyplot.violinplot()["bodies"]
    • 调用set_facecolor设置提琴颜色
    • 调用set_edgecolor设置提琴边框颜色
    • 调用set_alpha设置提琴图透明度
    • 调用set_linestyle设置提琴边框样式

3. 绘制提琴图步骤

  • 导入matplotlib.pyplot类
import matplotlib.pyplot as plt
  • 使用numpy库里的normal(),random(),randint()等方法准备data数组向量序列
data = [np.random.normal(0,2,100)]
  • 调用pyplot.violinplot(data)方法绘制提琴
part = plt.violinplot(data,showmedians=True)
  • 调用pyplot.show()方法渲染显示提琴图表
plt.show()

image.png

  • 通过使用yplot.violinplot()方法返回值,设置提琴图的颜色、边框样式等
for pc in part["bodies"]:
    print(pc)
    pc.set_facecolor("pink")
    pc.set_edgecolor("black")
    pc.set_alpha(1)
    pc.set_linestyle("--")

image.png

4. 小试牛刀

我们学习以matplotlib提供的绘制提琴图violinplot()方法后,我们来实操一下与scatter结合

  • 调用pyplot.grid()方法为画布添加网格
  • 调用numpy.percentile()计算下四分为数,均值数,上四分为数
  • 调用pyplot.scatter()在提琴图上标记均值的符号
  • 调用pyplot.vline()在提琴图上标记四分位数
data = [np.random.normal(0,i,100) for i in range(2,6)]
plt.grid()
part = plt.violinplot(data,showmedians=True,widths=[0.3,0.4,0.5,0.6])
for pc in part["bodies"]:
    print(pc)
    pc.set_facecolor("orange")
    pc.set_edgecolor("black")
    pc.set_alpha(1)
    pc.set_linestyle("--")

q1,me,q3 = np.percentile(data,[25,50,75],axis=1)
ind = np.arange(1,len(me)+1)

plt.scatter(ind,me,marker="o",color="r",s=50,zorder=3)
plt.vlines(ind,q1,q3,color="k",linestyles="-",lw=5)

image.png

总结

本期,我们对matplotlib.pyplot.violinplot()方法绘制提琴图相关属性。提琴图结合箱型图和密度图的特点,不仅展示数据的分布情况,还对数据的密度情况也展示出来。

以上是本期内容,欢迎大佬们点赞评论,下期见~

 

标签:set,提琴,get,Python,pyplot,matplotlib,pc,plt,violinplot
来源: https://blog.csdn.net/Z987421/article/details/122080527

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有