seaborn分类数据可视:散点图|箱型图|小提琴图|lv图|柱状图|折线图

一、散点图stripplot( ) 与swarmplot()

1.分类散点图stripplot( ) 

用法stripplot(x=None, y=None, hue=None, data=None, order=None, hue_order=None,jitter=True, dodge=False, orient=None,

        color=None, palette=None,size=5, edgecolor="gray", linewidth=0, ax=None, **kwargs)

  • x,y 分类字段和分布统计字段
  • hue 在x分类的基础上进行二次分类的字段
  • data 源数据
  • order 图表中显示的分类
  • jitter 当点数据重合较多时用该参数做一些调整,可以设置为True或者间距0.1,否则会有重合的点
  • dodge 如果有二次分类,二次分类是否拆分显示
tips = sns.load_dataset("tips") #导入系统数据
print(tips.head())
print(tips['day'].value_counts())
   total_bill   tip     sex smoker  day    time  size
0       16.99  1.01  Female     No  Sun  Dinner     2
1       10.34  1.66    Male     No  Sun  Dinner     3
2       21.01  3.50    Male     No  Sun  Dinner     3
3       23.68  3.31    Male     No  Sun  Dinner     2
4       24.59  3.61  Female     No  Sun  Dinner     4
Sat     87
Sun     76
Thur    62
Fri     19
Name: day, dtype: int64
输出结果

 

fig = plt.figure(figsize=(15,10))
ax1 = plt.subplot(221)
# 对data数据按day分类,统计total_bill的分布,如果点重合较多适当显示开
sns.stripplot(x="day", y="total_bill",  data=tips, jitter = True, size = 5, edgecolor = 'w',linewidth=1, marker = 'o', ax=ax1)ax2 = plt.subplot(222)
# 对data数据按day分类,统计total_bill的分布,并且图表中只显示按day分类的中的Sat和Sun
sns.stripplot(x="day", y="total_bill", data=tips,jitter = True, order = ['Sat','Sun'],ax=ax2) ax3 = plt.subplot(223)
# 对data数据按sex分类后再按day分类,统计total_bill的分布
sns.stripplot(x="sex", y="total_bill", hue="day",data=tips, jitter=True,ax = ax3)ax4 = plt.subplot(224)
# 对data数据按sex分类后再按day分类,统计total_bill的分布,并且不同的day拆分显示
sns.stripplot(x="sex", y="total_bill", hue="day",data=tips, jitter=True,palette="Set2",dodge=True,ax=ax4) 

2.分簇散点图swarmplot()

用法swarmplot(x=None, y=None, hue=None, data=None, order=None, hue_order=None,dodge=False, orient=None, color=None,

                      palette=None,size=5, edgecolor="gray", linewidth=0, ax=None, **kwargs)

swarmplot()除了没有jitter参数,其他用法类似stripplot()。

fig = plt.figure(figsize=(20,5))
ax1 = plt.subplot(141)
# 对data数据按day分类,统计total_bill的分布,如果点重合较多适当显示开
sns.swarmplot(x="day", y="total_bill",  data=tips,  size = 5, edgecolor = 'w',linewidth=1, marker = 'o', ax=ax1)ax2 = plt.subplot(142)
# 对data数据按day分类,统计total_bill的分布,并且图表中只显示按day分类的中的Sat和Sun
sns.swarmplot(x="day", y="total_bill", data=tips, order = ['Sat','Sun'],ax=ax2) ax3 = plt.subplot(143)
# 对data数据按sex分类后再按day分类,统计total_bill的分布
sns.swarmplot(x="sex", y="total_bill", hue="day",data=tips, ax = ax3)ax4 = plt.subplot(144)
# 对data数据按sex分类后再按day分类,统计total_bill的分布,并且不同的day拆分显示
sns.swarmplot(x="sex", y="total_bill", hue="day",data=tips, palette="Set2",dodge=True,ax=ax4) 

二、箱型图boxplot()

boxplot(x=None, y=None, hue=None, data=None, order=None, hue_order=None,orient=None, color=None, palette=None,

             saturation=.75,width=.8, dodge=True, fliersize=5, linewidth=None,whis=1.5, notch=False, ax=None, **kwargs)

  • x,y 分类字段和分布统计字段
  • hue 在x分类的基础上进行二次分类的字段
  • data 源数据
  • order 图表中显示的分类
  • dodge 如果有二次分类,二次分类是否拆分显示
  • width 箱的间隔的比例,值越大间隔越小
  • filtersize  异常点大小
  • whis 设置IQR
  • notch 是否以中值做凹槽
fig = plt.figure(figsize=(12,5))ax1 = plt.subplot(121)
sns.boxplot(x="day", y="total_bill", data=tips,linewidth = 2, width = 0.8, fliersize = 10, palette = 'hls', whis = 1.5, notch = True )
sns.swarmplot(x="day", y="total_bill", data=tips,color ='g',size = 3,alpha = 0.8)  #在箱型图上做分簇散点图

ax2 = plt.subplot(122)
sns.boxplot(x="day", y="total_bill", data=tips, hue = 'smoker', order = ['Sat','Sun'],palette = 'Reds') #根据day分类,再根据smkker分类

三、小提琴图violinplot()

violinplot(x=None, y=None, hue=None, data=None, order=None, hue_order=None,bw="scott", cut=2,

               scale="area", scale_hue=True, gridsize=100, width=.8, inner="box", split=False, dodge=True,

               orient=None,linewidth=None, color=None, palette=None, saturation=.75,ax=None, **kwargs)

  • x,y 分类字段和分布统计字段
  • hue 在x分类的基础上进行二次分类的字段
  • data 源数据
  • order 图表中显示的分类
  • dodge 如果有二次分类,二次分类的多个小提琴位置是否错开,默认为True,False则多个小提琴会重复  (dodge=True与split=False效果相同)
  • split 如果有二次分类,二次分类是否拆分整个提琴,默认为False显示为多个独立的小提琴,True则显示为一个小提琴,左右两侧表示二次分类
  • scale = 'area' 设置小提琴图的宽度,area-保持小提琴面积相同,count-按照样本数量决定宽度,width-宽度一样
  • gridsize = 100 设置小提琴图边线的平滑度,越高越平滑
  • inner = 'box' 设置内部显示类型 → “box”箱型图, “quartile”分位数, “point”点, “stick”, None
  • bw = 0.8 # 控制拟合程度,'scott'、'silverman'或者一个浮点数,一般可以不设置
fig = plt.figure(figsize=(20,5))ax1 = plt.subplot(141)
sns.violinplot(x="day",y="total_bill",data=tips,linewidth=2,width=0.8,palette='hls',scale= 'area',gridsize=50,inner='box')  ax2 = plt.subplot(142)
sns.violinplot(x="day",y="total_bill",data=tips,hue = 'smoker',palette="muted",dodge=False,inner="point")#二次分类小提琴位置不错开

ax3 = plt.subplot(143)
sns.violinplot(x="day",y="total_bill",data=tips,hue = 'smoker',palette="muted",split=False,inner="stick")#二次分类不拆分小提琴,显示为多个独立小提琴

ax4 = plt.subplot(144)
sns.violinplot(x="day",y="total_bill",data=tips,hue = 'smoker',palette="muted",split=True,inner="quartile")#二次分类拆分小提琴,左右两侧分别表示二次

小提琴图与分簇散点图结合sns.violinplot()+ sns.swarmplot()

sns.violinplot(x="day", y="total_bill", data=tips, palette = 'hls',alpha=0.5, inner = None)
sns.swarmplot(x="day", y="total_bill", data=tips, color="w")

四、增强箱图boxenplot()

boxenplot(x=None, y=None, hue=None, data=None, order=None, hue_order=None,orient=None, color=None,

                palette=None, saturation=.75,width=.8,dodge=True, k_depth='proportion', linewidth=None,

                scale='exponential', outlier_prop=None, ax=None, **kwargs)

(lv图表使用boxenplot(),lvplot()即将被遗弃)

  • x,y 分类字段和分布统计字段
  • hue 在x分类的基础上进行二次分类的字段
  • data 源数据
  • order 图表中显示的分类
  • dodge 如果有二次分类,二次分类的多个小提琴位置是否错开,默认为True,False则多个小提琴会重复  (dodge=True与split=False效果相同)
  • scale = 'area' 设置lv图的宽度,“linear”、“exonential”、“area”   (一般scale和k_depth保持默认就好)
  • k_depth = 'proportion', # 设置框的数量 → “proportion”、“tukey”、“trustworthy”
  • width 箱之间间隔
sns.lvplot(x="day", y="total_bill", data=tips, palette="mako", width = 0.8, scale = 'area',k_depth = 'proportion')
sns.swarmplot(x="day", y="total_bill", data=tips, color ='k',size = 5)

五、柱状图barplot() 

seaborn中的柱状图不是单纯的表示数量,而是表示了一个统计标准和对应的置信区间。

barplot(x=None, y=None, hue=None, data=None, order=None, hue_order=None,estimator=np.mean, ci=95, 
           n_boot=1000, units=None,orient=None, color=None, palette=None, saturation=.75,errcolor=".26", 
           errwidth=None, capsize=None, dodge=True,ax=None, **kwargs)

  • x,y 分类字段和分布统计字段
  • hue 在x分类的基础上进行二次分类的字段
  • data 源数据
  • order 图表中显示的分类
  • estimater 柱状图表示的统计量,默认和常使用均值
  • ci 置信区间的误差,0-100之内、或sd标准差,或None,默认为95
  • saturation 颜色饱和度
  • errcolor与errwidth 误差线颜色与宽度
  • capsize 误差线延长宽度
  • dodge 如果有二次分类,二次分类的多个多个柱状图位置是否错开
  • edgecolor 柱子的边框颜色
#导入泰坦尼克号、小费和汽车事故的3个表的数据结构,在不同窗口显示前5行
titanic = sns.load_dataset("titanic")
titanic.head()
tips = sns.load_dataset('tips') #
tips.head()
crashes = sns.load_dataset("car_crashes")#
crashes.head()

 

      

 

fig = plt.figure(figsize=(15,4))
ax1 = plt.subplot(131)  #泰坦尼克,在性别分类的基础上再按舱级别分类,统计生还率
sns.barplot(x="sex",y="survived",hue="class",data=titanic,palette = 'hls',capsize = 0.05,saturation=.8,errcolor = 'gray',errwidth = 2,ci = 'sd')
ax2 = plt.subplot(132)  #小费,在日期分类的基础上再按性别分类,统计给的小费,置信区间的误差为标准差
sns.barplot(x="day", y="total_bill", hue="sex", data=tips,edgecolor = 'white',errcolor='gray',capsize=0.1,ci='sd')
ax3 = plt.subplot(133)  #小费,同上,置信区间的误差为默认的95
sns.barplot(x="day", y="total_bill", hue="sex", data=tips,edgecolor = 'white',errcolor='gray',capsize=0.1)

crashes = sns.load_dataset("car_crashes").sort_values("total", ascending=False)
f,ax = plt.subplots(figsize=(8, 20))# 创建图表

sns.set_color_codes("pastel")
sns.barplot(x="total", y="abbrev", data=crashes,label="Total", color='b',edgecolor = 'w')# 设置第一个柱状图
sns.set_color_codes("muted")
sns.barplot(x="alcohol", y="abbrev", data=crashes, label="Alcohol-involved",color='b',edgecolor = 'w')# 设置第二个柱状图

ax.legend(ncol=2, loc="lower right")
sns.despine(left=True, bottom=True)

六、计数柱状图countplot() 

countplot(x=None, y=None, hue=None, data=None, order=None, hue_order=None,orient=None, color=None,
                palette=None, saturation=.75,dodge=True, ax=None, **kwargs)

  • x,y 同时表示分类字段和显示方向,即在x轴上或在y轴上对指定的字段进行计数显示
  • hue 在x分类或者y分类的基础上进行二次分类的字段
  • data 源数据
  • order 图表中显示的分类
  • dodge 如果有二次分类,二次分类的多个多个柱状图位置是否错开
  • edgecolor 柱子的边框颜色
fig = plt.figure(figsize=(12,4))
ax1 = plt.subplot(121)
sns.countplot(x="day", hue="sex", data=tips, palette = 'muted') #竖直显示,在日期分类的基础上再按性别分类
ax2 = plt.subplot(122)
sns.countplot(y="day", hue="sex", data=tips, palette = 'muted') #水平显示

七、折线图pointbar()

折线图pointbar()和barplot()的用法类似,只是barplot()用柱状图表示均值,而pointbar()用一个点表示了均值。

pointplot(x=None, y=None, hue=None, data=None, order=None, hue_order=None,estimator=np.mean, ci=95,
              n_boot=1000, units=None,markers="o", linestyles="-", dodge=False, join=True, scale=1,
              orient=None, color=None, palette=None, errwidth=None,capsize=None, ax=None, **kwargs)

  • x,y 分类字段和分布统计字段
  • hue 在x分类的基础上进行二次分类的字段
  • data 源数据
  • order 图表中显示的分类
  • estimater 柱状图表示的统计量,默认和常使用均值
  • ci 置信区间的误差,0-100之内、或sd标准差,或None,默认为95
  • marker 均值的表示形式
  • errwidth 误差线颜色与宽度
  • capsize 误差线延长宽度
  • dodge 如果有二次分类,二次分类的多个线是否分开
  • joint 是否连线
sns.pointplot(x="day",y="total_bill",hue = 'sex',data=tips,palette = 'hls',dodge = True,join = True,markers=["o", "x"],linestyles=["-", "--"])
tips.groupby(['day','sex']).mean()['total_bill']

 

转载于:https://www.cnblogs.com/Forever77/p/11405915.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/391558.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据图表可视化_数据可视化十大最有用的图表

数据图表可视化分析师每天使用的最佳数据可视化图表列表。 (List of best data visualization charts that Analysts use on a daily basis.) Presenting information or data in a visual format is one of the most effective ways. Researchers have proved that the human …

javascript实现自动添加文本框功能

转自:http://www.cnblogs.com/damonlan/archive/2011/08/03/2126046.html 昨天,我们公司的网络小组决定为公司做一个内部的网站,主要是为员工比如发布公告啊、填写相应信息、投诉、问题等等需求。我那同事给了我以下需求: 1.点击一…

从Mysql slave system lock延迟说开去

本文主要分析 sql thread中system lock出现的原因,但是笔者并明没有系统的学习过master-slave的代码,这也是2018年的一个目标,2018年我都排满了,悲剧。所以如果有错误请指出,也作为一个笔记用于后期学习。同时也给出笔…

传智播客全栈_播客:从家庭学生到自学成才的全栈开发人员

传智播客全栈In this weeks episode of the freeCodeCamp podcast, Abbey chats with Madison Kanna, a full-stack developer who works remotely for Mediavine. Madison describes how homeschooling affected her future learning style, how she tackles imposter syndrom…

leetcode 82. 删除排序链表中的重复元素 II(map)

解题思路 map记录数字出现的次数,出现次数大于1的数字从链表中移除 代码 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.val val; }* ListNode(…

python 列表、字典多排序问题

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.csdn.net/justin051/article/details/84289189Python使用sorted函数来排序: l [2,1,3,5,7,3]print…

接facebook广告_Facebook广告分析

接facebook广告Is our company’s Facebook advertising even worth the effort?我们公司的Facebook广告是否值得努力? 题: (QUESTION:) A company would like to know if their advertising is effective. Before you start, yes…. Facebook does ha…

如何创建自定义进度栏

Originally published on www.florin-pop.com最初发布在www.florin-pop.com The theme for week #14 of the Weekly Coding Challenge is: 每周编码挑战第14周的主题是: 进度条 (Progress Bar) A progress bar is used to show how far a user action is still in…

基于SpringBoot的CodeGenerator

title: 基于SpringBoot的CodeGenerator tags: SpringBootMybatis生成器PageHelper categories: springboot date: 2017-11-21 15:13:33背景 目前组织上对于一个基础的crud的框架需求较多 因此选择了SpringBoot作为基础选型。 Spring Boot是由Pivotal团队提供的全新框架&#xf…

seaborn线性关系数据可视化:时间线图|热图|结构化图表可视化

一、线性关系数据可视化lmplot( ) 表示对所统计的数据做散点图,并拟合一个一元线性回归关系。 lmplot(x, y, data, hueNone, colNone, rowNone, paletteNone,col_wrapNone, height5, aspect1,markers"o", sharexTrue,shareyTrue, hue_orderNone, col_orde…

hdu 1257

http://acm.hdu.edu.cn/showproblem.php?pid1257 题意:有个拦截系统,这个系统在最开始可以拦截任意高度的导弹,但是之后只能拦截不超过这个导弹高度的导弹,现在有N个导弹需要拦截,问你最少需要多少个拦截系统 思路&am…

eda可视化_5用于探索性数据分析(EDA)的高级可视化

eda可视化Early morning, a lady comes to meet Sherlock Holmes and Watson. Even before the lady opens her mouth and starts telling the reason for her visit, Sherlock can tell a lot about a person by his sheer power of observation and deduction. Similarly, we…

我的AWS开发人员考试未通过。 现在怎么办?

I have just taken the AWS Certified Developer - Associate Exam on July 1st of 2019. The result? I failed.我刚刚在2019年7月1日参加了AWS认证开发人员-联考。结果如何? 我失败了。 The AWS Certified Developer - Associate (DVA-C01) has a scaled score …

关系数据可视化gephi

表示对象之间的关系,可通过gephi软件实现,软件下载官方地址https://gephi.org/users/download/ 如何来表示两个对象之间的关系? 把对象变成点,点的大小、颜色可以是它的两个参数,两个点之间的关系可以用连线表示。连线…

Hyperledger Fabric 1.0 从零开始(十二)——fabric-sdk-java应用

Hyperledger Fabric 1.0 从零开始(十)——智能合约(参阅:Hyperledger Fabric Chaincode for Operators——实操智能合约) Hyperledger Fabric 1.0 从零开始(十一)——CouchDB(参阅&a…

css跑道_如何不超出跑道:计划种子的简单方法

css跑道There’s lots of startup advice floating around. I’m going to give you a very practical one that’s often missed — how to plan your early growth. The seed round is usually devoted to finding your product-market fit, meaning you start with no or li…

将json 填入表格_如何将Google表格用作JSON端点

将json 填入表格UPDATE: 5/13/2020 - New Share Dialog Box steps available below.更新:5/13/2020-下面提供了 新共享对话框步骤。 Thanks Erica H!谢谢埃里卡H! Are you building a prototype dynamic web application and need to collaborate with …

leetcode 173. 二叉搜索树迭代器

实现一个二叉搜索树迭代器类BSTIterator ,表示一个按中序遍历二叉搜索树(BST)的迭代器: BSTIterator(TreeNode root) 初始化 BSTIterator 类的一个对象。BST 的根节点 root 会作为构造函数的一部分给出。指针应初始化为一个不存在…

jyputer notebook 、jypyter、IPython basics

1 、修改jupyter默认工作目录:打开cmd,在命令行下指定想要进的工作目录,即键入“cd d/ G:\0工作面试\学习记录”标红部分是想要进入的工作目录。 2、Tab补全 a、在命令行输入表达式时,按下Tab键即可为任意变量(对象、…

cookie和session(1)

cookie和session 1.cookie产生 识别用户 HTTP是无状态协议,这就回出现这种现象:当你登录一个页面,然后转到登录网站的另一个页面,服务器无法认识到。或者说两次的访问,服务器不能认识到是同一个客户端的访问&#xff0…