原文:Python数据处理从零开始----第四章(可视化)(16)一文解决小提琴图violin plot​www.jianshu.com

Python数据处理从零开始----第四章(可视化)(16)一文解决小提琴图violin plot

(1)输入数据所使用的是经典的iris数据, 包括有sepal_length, sepal_width, petal_length,petal_width和 species五个变量,其中前四个为数字变量,最后一个为分类变量

import seaborn as sns df = sns.load_dataset('iris') df.head() Out[25]: sepal_length sepal_width petal_length petal_width species 0 5.1 3.5 1.4 0.2 setosa 1 4.9 3.0 1.4 0.2 setosa 2 4.7 3.2 1.3 0.2 setosa 3 4.6 3.1 1.5 0.2 setosa 4 5.0 3.6 1.4 0.2 setosa

(2)绘制基础图形

# In[*] # Make boxplot for one group only sns.violinplot( y=df["sepal_length"] ) #sns.plt.show()

这里是小提琴图里最基础的图片,目的是为了展示sepal_length数据的分布

(3)绘制经典的小提琴图:One variable and several groups

# library & dataset import seaborn as sns df = sns.load_dataset('iris') # plot sns.violinplot( x=df["species"], y=df["sepal_length"] ) #sns.plt.show()

这里是小提琴图里最经典的图片,目的是展示不同species的观察值在sepal_length的分布。我们可以看出virginica的平均sepal_length最高,而setosa的平均sepal_length最低。

(4)绘制经典的小提琴图:several variables

# In[*] # library & dataset import seaborn as sns df = sns.load_dataset('iris') # plot sns.violinplot(data=df.ix[:,0:2]) #sns.plt.show()

(5)绘制横放的小提琴图

# library & dataset import seaborn as sns df = sns.load_dataset('iris') # Just switch x and y sns.violinplot( y=df["species"], x=df["sepal_length"] ) #sns.plt.show()

(6) change linewidth修改线条宽度

# In[*] import seaborn as sns df = sns.load_dataset('iris') # Change line width sns.violinplot( x=df["species"], y=df["sepal_length"], linewidth=5) #sns.plt.show()

(7) Change width修改图形宽度

# In[*] # Change width sns.violinplot( x=df["species"], y=df["sepal_length"], width=1) #sns.plt.show()

(8) 使用colorpalette设置小提琴图颜色

# library & dataset import seaborn as sns df = sns.load_dataset('iris') # Use a color palette sns.violinplot( x=df["species"], y=df["sepal_length"], palette="Blues")

(9) 使用某个特定颜色设置小提琴图颜色

import seaborn as sns df = sns.load_dataset('iris') # plot sns.violinplot( x=df["species"], y=df["sepal_length"], color="skyblue")

(10) 指定不同分组使用不同颜色

import seaborn as sns df = sns.load_dataset('iris') # Make a dictionary with one specific color per group: my_pal = {"versicolor": "g", "setosa": "b", "virginica":"m"} #plot it sns.violinplot( x=df["species"], y=df["sepal_length"], palette=my_pal)

(11) 突出某个分组的颜色

import seaborn as sns df = sns.load_dataset('iris') # make a vector of color: red for the interesting group, blue for others: my_pal = {species: "r" if species == "versicolor" else "b" for species in df.species.unique()} # make the plot sns.violinplot( x=df["species"], y=df["sepal_length"], palette=my_pal)

(12) 绘制分组小提琴图当我们同时有一个numerical variable,许多个 groups, 还有一个subgroups, 我们这个时候就需要分组小提琴图,也就是 grouped violinplot。场景示例:我们想知道男女两类患者,在青少年、中年、老年这三个年龄阶段,在肺癌发病率的分布

# library & dataset import seaborn as sns df = sns.load_dataset('tips') # Grouped violinplot sns.violinplot(x="day", y="total_bill", hue="smoker", data=df, palette="Pastel1") #sns.plt.show()

我们可以看出在Fri上,吸烟者和不吸烟者total_bill的差别很大。而在Thur上,吸烟者和不吸烟者total_bill的差别很小。

(13) 设置小提琴图分组的顺序这里我们设置的是 "versicolor", "virginica", "setosa",也就是说先展示versicolor组的数据,最后展示setosa组的数据。

import seaborn as sns df = sns.load_dataset('iris') # plot sns.violinplot(x='species', y='sepal_length', data=df, order=[ "versicolor", "virginica", "setosa"])

(14) 设置小提琴图分组的顺序(根据中位数大小)

import seaborn as sns df = sns.load_dataset('iris') # Find the order my_order = df.groupby(by=["species"])["sepal_length"].median().iloc[::-1].index # Give it to the violinplot sns.violinplot(x='species', y='sepal_length', data=df, order=my_order)

(15) 在小提琴图上周展示每个分组的观察值总数。

import seaborn as sns, numpy as np df = sns.load_dataset("iris") # Basic violinplot ax = sns.violinplot(x="species", y="sepal_length", data=df) # Calculate number of obs per group & median to position labels medians = df.groupby(['species'])['sepal_length'].median().values nobs = df['species'].value_counts().values nobs = [str(x) for x in nobs.tolist()] nobs = ["n: " + i for i in nobs] # Add it to the plot pos = range(len(nobs)) for tick,label in zip(pos,ax.get_xticklabels()): ax.text(pos[tick], medians[tick] + 0.03, nobs[tick], horizontalalignment='center', size='x-small', color='w', weight='semibold') #sns.plt.show()

我们可以看出setosa组共计有50个观察值observation。而versicolor和virginica组也有50个观察值。

python绘制小提琴图数据_Python数据处理从零开始----第四章(可视化)(16)一文解决小提琴图violin plot...相关推荐

  1. python绘制dca曲线_Python数据处理从零开始----第四章(可视化)(9)线性相关曲线...

    原文:Python数据处理从零开始----第四章(可视化)(9)线性相关曲线​www.jianshu.com ============================================= ...

  2. python科赫曲线绘制正方形_Python数据处理从零开始----第四章(可视化)(14)使用seaborn绘制热图...

    目录 Python数据处理从零开始----第四章(可视化)①③多变量绘图 Python数据处理从零开始----第四章(可视化)(14)使用seaborn绘制热图 seaborn.heatmapHeat ...

  3. python画误差棒_Python数据处理从零开始----第四章(可视化)(3)散点图和误差棒...

    目录 Python数据处理从零开始----第四章(可视化)③散点图和误差棒 Python数据处理从零开始----第四章(可视化)④误差图 =============================== ...

  4. python绘制函数曲线x2sin(x2-x-2)_Python数据处理从零开始----第四章(可视化)(2)图形和轴...

    正文 导入包 当我们需要对数据进行可视化时,我们遇到的可能最简单的是单个函数的可视化y = f(x)y = f(x). 在这里,我们将首先看一下这种类型的简单绘图.第一步先导入包:% reset -f ...

  5. 基于Python的微博大数据舆情分析,舆论情感分析可视化系统

    运行效果图 基于Python的微博大数据舆情分析,舆论情感分析可视化系统 系统介绍 微博舆情分析系统,项目后端分爬虫模块.数据分析模块.数据存储模块.业务逻辑模块组成. 先后进行了数据获取和筛选存储, ...

  6. Python使用matplotlib可视化多个分组的密度图、使用seaborn中的kdeplot函数可视化多个分组的密度图(Density Plot)

    Python使用matplotlib可视化多个分组的密度图.使用seaborn中的kdeplot函数可视化多个分组的密度图(Density Plot) 目录

  7. python下载文件到本地-Python下载网络文本数据到本地内存的四种实现方法示例

    本文实例讲述了Python下载网络文本数据到本地内存的四种实现方法.分享给大家供大家参考,具体如下: import urllib.request import requests from io imp ...

  8. Timo学习笔记 :Python基础教程(第三版)第四章 当索引行不通时

    第四章 当索引行不通时 Timo学习笔记 :Python基础教程(第三版)第三章 使用字符串 这是word编辑的最后一章笔记,第五章开始将直接用这个模板记录. 本章笔记很少,也很简单.很多方法可以到要 ...

  9. 计算机网络第四章思维导图_初级会计实务的第四章所有者权益的思维导图丨初级讲堂...

    蜜蜜知道很多考证党每天都在密切关注考试动态,打卡<每日一练>,最近,蜜蜜特开辟会计考试相关的专栏<初级讲堂>(点击查看第一期报道:镇定!2021初级报名人数突破500万?),为 ...

最新文章

  1. centos7中systemctl 对系统服务的控制
  2. 解决sharepoint2010的多行文本框的插入图片—【从sharepoint】的disabled问题
  3. 自定义图框_Smart3D自定义图纸属性及其应用
  4. SAP UI的加载动画效果和幽灵设计(Ghost Design)
  5. [js] 举例说明Object.defineProperty会在什么情况下造成循环引用导致栈溢出?
  6. 芯片IC附近为啥要放0.1uF的电容?看完秒懂~
  7. oracle跨越千年处理
  8. 网站开发流程以及HTML5简介(十)
  9. Android Studio调用高德地图api
  10. 我们都是被宫崎骏爱过的孩子
  11. 程序员应该了解的计算机知识(一)——基础理论
  12. 显示器颜色校准_显示器校准:正确设置颜色的一般指南
  13. C语言实现无符号乘法
  14. mysql毕业生信息管理系统,本科毕业设计信息管理系统的设计(Struts,MySQL)
  15. OE分布式智能云生态助力全民挖矿
  16. Google benchmark使用手册及范例
  17. zeek(bro) 脚本学习 二
  18. 机器视觉技术在水下机器人中的应用研究展望
  19. thinkPHP6.0项目搭建
  20. 如何使用anydesk进行远程控制?进来长知识

热门文章

  1. 计算机毕业设计asp.net考试安排管理系统VS开发sqlserver数据库web结构c#编程计算机网页源码项目
  2. 双向数据绑定原理(原生js实现双向数据绑定)
  3. JPEG压缩原理(DCT)
  4. 2012.10.19 事故分析
  5. android仿制应用宝的应用详情页
  6. 实现Windows远程连接
  7. SCI论文投稿格式准备(以光学类为例)与论文撰写模板-经验总结
  8. 搭建个人主页的各种方法集锦
  9. 让自己飞一会儿,2010年最酷的离职留言.
  10. python作业第七天