python 竖线 绘图_Python可视化 | Seaborn5分钟入门(二)——barplot countplot

Seaborn是基于matplotlib的Python可视化库。 它提供了一个高级界面来绘制有吸引力的统计图形。Seaborn其实是在matplotlib的基础上进行了更高级的API封装,从而使得作图更加容易,不需要经过大量的调整就能使你的图变得精致。

94a6953f1a511e6d1ca319de5ff4bbbd.png

注:所有代码均在IPython notebook中实现


barplot(条形图)

条形图表示数值变量与每个矩形高度的中心趋势的估计值,并使用误差线提供关于该估计值附近的不确定性的一些指示。具体用法如下:

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

接下来还是通过具体例子学习里面的一些参数的用法:

%matplotlib inlineimport pandas as pdimport numpy as npimport seaborn as snsimport matplotlib.pyplot as plt#用于解决中文显示不了的问题plt.rc("font",family="SimHei",size="12") sns.set_style("whitegrid") 

本篇文章所采用的数据集内容如下

data.head(5) #data是一个dataframe
3ee496883528eebb382585aec895db9c.png

x,y(str):dataframe中的列名

data:dataframe或者数组

sns.barplot(x="color", y="age", data=data)
40b7b0bae9518d1e27f1467a4ff4ebec.png

关于图像的解释:Seaborn会对”color“列中的数值进行归类后按照estimator参数的方法(默认为平均值)计算相应的值,计算出来的值就作为条形图所显示的值(条形图上的误差棒则表示各类的数值相对于条形图所显示的值的误差)

hue(str):dataframe的列名,按照列名中的值分类形成分类的条形图

sns.barplot(x="color" y="age",data=data,hue="gender")
6a9fcd1444b1f8fde9520faeebdbb26e.png

order, hue_order (lists of strings):用于控制条形图的顺序

fig,axes=plt.subplots(1,2)sns.barplot(x="gender", y="age", data=data, ax=axes[0])sns.barplot(x="gender", y="age", data=data, ax=axes[1], order=["女","男"])
8edd79f077c2e21a2833ab7a477c14df.png

estimator:控制条形图取每列数据的什么值

fig,axes=plt.subplots(1,2)#左图,默认为平均值sns.barplot(x="gender", y="age", data=data, ax=axes[0]) #右图,中位数sns.barplot(x="gender", y="age", estimator=np.median, data=data, ax=axes[1]) 
5cecb1e57987221d6d5b2746ed704091.png

ci(float): 置信区间(在0-100之间),若填写"sd",则误差棒用标准误差。(默认为95)

fig,axes=plt.subplots(1,2)sns.barplot(x="color", y="age", data=data, ci=0, ax=axes[0]) #左图sns.barplot(x="color", y="age", data=data, ci="sd", ax=axes[1]) #右图
9255ce136af97a58aa61df6ea2c1a177.png

capsize(float):设置误差棒帽条(上下两根横线)的宽度

fig,axes=plt.subplots(1,2)sns.barplot(x="color", y="age", data=data, ax=axes[0], capsize=.2) #左图sns.barplot(x="color", y="age", data=data, ax=axes[1], capsize=.5) #右图
415feaad7a4fc181f3e0507da2f3fbc7.png

palette:调色板,控制不同的颜色style

fig,axes=plt.subplots(2,1)sns.barplot(x="color", y="age", data=data, ax=axes[0]) #上图sns.barplot(x="color", y="age", data=data, palette="Set3", ax=axes[1]) #下图
cbc394120a6e1831c149e59185de6cc9.png

X,Y轴互换

fig,axes=plt.subplots(1,2)sns.barplot(x="age",y="color",data=data,ax=axes[0]) #左图sns.barplot(x="color",y="age",data=data,ax=axes[1]) #右图
5cc382a928a064cf4cb4241b5cec3665.png

countplot入门

一个计数图可以被认为是一个分类直方图,而不是定量的变量。基本的api和选项与barplot()相同,因此您可以比较嵌套变量中的计数。(工作原理就是对输入的数据分类,条形图显示各个分类的数量)具体用法如下:

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

注:countplot参数和barplot基本差不多,可以对比着记忆,有一点不同的是countplot中不能同时输入x和y,且countplot不存在置信区间。

根据例子体验一下:

fig,axes=plt.subplots(1,2)sns.countplot(x="gender", data=data, ax=axes[0]) #左图sns.countplot(y="gender", data=data, ax=axes[1]) #右图
edf167e48197fd5cde6e2da8b698229c.png
fig,axes=plt.subplots(1,2)sns.countplot(x="gender", hue="smoker", data=data, ax=axes[0]) #左图sns.countplot(y="gender", hue="smoker", data=data, ax=axes[1]) #右图
c7b5fc40b1ddb5c33d9b95a71ec05c09.png
fig,axes=plt.subplots(2,1)sns.countplot(x="color", data=data, ax=axes[0]) #上图sns.countplot(x="color", data=data, palette="Set3", ax=axes[1]) #下图
6e0bbee6449a61bb293c1a20df156ad7.png

pointplot入门

点图代表散点图位置的数值变量的中心趋势估计,并使用误差线提供关于该估计的不确定性的一些指示。点图可能比条形图更有用于聚焦一个或多个分类变量的不同级别之间的比较。他们尤其善于表现交互作用:一个分类变量的层次之间的关系如何在第二个分类变量的层次之间变化。连接来自相同色调等级的每个点的线允许交互作用通过斜率的差异进行判断,这比对几组点或条的高度比较容易。具体用法如下:

seaborn.pointplot(x=None, y=None, hue=None, data=None, order=None, hue_order=None, estimator=(function 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)

下面继续使用之前的数据集进行绘图,和barplot相同的参数就不再具体演示,重点演示pointplot独有的。

sns.set() #初始化seaborn配置sns.set_style("darkgrid") #灰色网格背景sns.pointplot(x="smoker", y="age", data=data)
3e87d88c6b77094c67f435a0e33714da.png

图中的点为这组数据的平均值点,竖线则为置信区间,默认两个均值点会相连接,若不想显示,可以通过join参数实现:

sns.pointplot(x="smoker", y="age", data=data, join=False)
b6a41da767c04cbbcb6594b5062104a9.png

之前我们演示过barplot的hue参数,现在我们看一下pointplot的hue参数:

sns.pointplot(x="smoker", y="age", data=data, hue="gender")
6ef18df7b03bf9ad6b6c475e4fa61e10.png

我们可以看到两个类别的误差棒重叠在了一起,使数据观测不清晰。怎么解决这个问题呢?pointplot的dodge参数可以使重叠的部分错开:

sns.pointplot(x="smoker", y="age", data=data, hue="gender", dodge=True)
1f2970d99326ff912b2773ca56f2d61e.png

接下来我们对均值点的样式(由参数markers控制)和相同色调的点之间的连线(由参数linestyles控制)做一下改动。

sns.pointplot(x="smoker", y="age", data=data, hue="gender", dodge=True, markers=["*","x"], linestyles=["-.","--"])
c1099fd594743d814f2585c988f923f4.png

其他样式请参考matplotlib线条样式

将X,Y轴互换

sns.pointplot(x="age",y="color",data=data)
6bc78e59a06d01d6fd5bafff2696254e.png

通过color参数控制不同单层图的颜色

sns.pointplot(x="age",y="color",data=data,color="#bb3f3f")
c2e9497eef604dbc44006221ffbf1c8b.png

还有其他效果和barplot一样的参数,大家可以动手自己试一下。以上内容是我结合官方文档和自己的一点理解写成的,有什么错误大家可以指出来并提提意见共同交流、进步,也希望我写的这些能够给阅读完本文的你或或少的帮助!

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

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

相关文章

计算机网络工程综合布线目的,弱电工程综合布线系统与计算机网络布线系统有何不同?【网络综合布线】...

弱电工程的综合布线是模块化和灵活的建筑物或建筑物之间的信息传输通道。 综合配电系统可以连接到声音设备、数据设备、开关设备和各种控制设备和信息管理系统。 同时,它还使这些设备与外部通信网络连接起来。弱电工程综合布线系统与计算机网络布线系统有何不同..弱…

计算机专硕专业课单科分数线,计算机考研|这两所自划线,单科没过线也能复试?...

原标题:计算机考研|这两所自划线,单科没过线也能复试?东南、浙大!单科没过线也能复试!关注量子考研公众号,获取最新计算机考研咨询1.东南大学:统考考生(不含报考苏州联合研究生院考生和管理类联…

Saltstack_使用指南17_salt-ssh

1. 主机规划 salt 版本 1 [rootsalt100 ~]# salt --version 2 salt 2018.3.3 (Oxygen) 3 [rootsalt100 ~]# salt-minion --version 4 salt-minion 2018.3.3 (Oxygen) salt ssh文档 https://docs.saltstack.com/en/latest/topics/ssh/index.html 2. salt-ssh实现步骤 2.1. 部署s…

新手入门:AIX操作系统安装图解

AIX(Advanced Interactive Executive)是IBM 公司的UNIX操作系统,它特别适合于做关键数据处理。2002年IBM发布了AIX 5.2版。 下面就以该版本为例来介绍IBM的AIX操作系统的安装,主要介绍在IBM P630机器上如何使用AIX软件的光盘&…

华为荣耀9x怎么解账户锁_麒麟820,4000万像素,荣耀X10是下一部千元街机?

哈喽黑粉们,欢迎来到黑马公社。最近发布的新机很多,其中之一就是黑马此前和大家聊过多次的荣耀X10。这款新机于昨天5月20日发布,表现怎么样呢?今天黑马就来聊聊这款新机。和此前爆料的一样,荣耀X10采用了升降式设计&am…

关键词提取算法

1、先给本聚类内的所有文档进行分词,然后用一个字典保存每个词出现的次数;2、遍历每个词,得到每个词在所有文档里的IDF值,和在本聚类内出现的次数(TF)相乘的值;3、用一个字典(key是词,value是TF*IDF权重)来…

JavaWeb的分页

1.什么是分页 第N页/共M页 首页 上一页 1 2 3 4 5 6 7 8 9 下一页 尾页 [ ] go 分页的优点:只查询一页,不用查询所有页! 2.分页数据 页面的数据都是由Servlet传递过来的! Servlet: 1.*当前页:pageCod…

中反应器体积_缠绕管式反应器大幅提高能效,移热能力较列管式反应器提升逾50%...

武汉东海石化重型装备有限公司与中科院过程工程研究所联合开展的高效缠绕管式反应器研发课题二期研究日前结题。该研究建立了一套与不同工作原理相适应的缠绕管式反应器设计方法,使缠绕管式反应器的移热能力较列管式固定床反应器提升逾50%,可极大提高企业…

【异常(待解决)】org.apache.http.NoHttpResponseException: api.weixin.qq.com:443 failed to respond...

一、记录下异常堆栈信息 2019-06-01 10:26:58.246 [http-nio-9850-exec-3] ERROR weixin.popular.client.LocalHttpClient - execute error org.apache.http.NoHttpResponseException: api.weixin.qq.com:443 failed to respondat org.apache.http.impl.conn.DefaultHttpRespon…

企业内容管理-互联网应用

企业内容管理-互联网应用 当你第一次听到企业内容管理这个名字,很容易联想到ERP这种复杂无比的系统。实际上也确实如此,目前几大主要的ECM系统都是复杂无比,所以我想从互联网应用,一般网民可以使用的角度来谈谈企业内容管理。 从…

计算机做游戏到大学要学什么,大学学什么专业,毕业才能从事电竞行业?

原标题:大学学什么专业,毕业才能从事电竞行业?电竞可不只是打游戏这么简单。想必最近很多同学已经陆陆续续收到录取通知书了,大学的美好生活已经在等着你们啦!今天化学姐想和大家聊聊就业已经游戏行业相关的事儿。电子…

layui中table监听单元格_最全总结 | 聊聊 Python 办公自动化之 PPT(中)

点击上方 “AirPython”,选择 “加为星标”第一时间关注 Python 技术干货!1. 前言上一篇文章简单地介绍了 PPT 的文档结构,并使用 python-pptx 这个依赖库完成对 PPT 文档最基本的操作最全总结 | 聊聊 Python 办公自动化之 PPT(上)作为 PPT 系…

东北考生到南方学计算机,为啥东北考生都想去南方,而南方学生很少考东北,看看他们怎么说...

原标题:为啥东北考生都想去南方,而南方学生很少考东北,看看他们怎么说文/晓宁说教育高考对于众多考生来说,是人生中最重要的一场考试,如果能在高考中发挥出好成绩,就可以顺利的考上一所自己理想的大学。按照…

用excel制作双层饼图_双层饼图,让你的工作更出彩

在Excel中饼图是很常见的图表类型,做起来也很简单,相信大家都会做。但双层饼图你会做吗?如下图所示,根据左侧的数据源,做出右侧的双层饼图。这么漂亮的双层饼图是怎么制做出来的呢?今天我就来给大家分享一下…

Comet OJ - 2019 六一欢乐赛

传送门 #A&#xff1a; 思路&#xff1a;等差数列求和,看成俩次12… n,多加的n减去&#xff0c;所以 ans n*(n1) - n。 AC代码&#xff1a; 1 #include<iostream>2 #include<algorithm>3 #include<string>4 using namespace std;5 int main()6 {7 int n…

三个子系统_「正点原子Linux连载」第五十八章Linux INPUT子系统实验(一)

1)实验平台&#xff1a;正点原子Linux开发板2)摘自《正点原子I.MX6U嵌入式Linux驱动开发指南》关注官方微信号公众号&#xff0c;获取更多资料&#xff1a;正点原子第五十八章Linux INPUT子系统实按键、鼠标、键盘、触摸屏等都属于输入(input)设备&#xff0c;Linux内核为此专门…

【翻译】eXpressAppFramework QuickStart 业务模型设计(十)——在代码中实现数据验证...

这一讲&#xff0c;你将学到如何给业务对象和他们的属性设置规则。最终用户在执行赋值操作后将验证这些规则。你可以实现必填规则使得Position.Title属性不能为空。此规则将在Position对象保存的时候被验证。你还能够看到打破规则的界面提示。在此之前&#xff0c;我建议你去读…

注册机patch起什么作用_电机滑环起什么作用?

电机滑环起什么作用?发电机滑环就是我们传统的集电环&#xff0c;用于电机的换向器上作为导出导入电流的滑动接触体&#xff0c;它的导电、导热以及润滑性能良好&#xff0c;并具有一定的机械强度和换向性火花的本能。几乎所有的电机都使用碳刷&#xff0c;它是电机的重要组成…

《Java并发编程的艺术》之synchronized的底层实现原理

在学习锁优化时&#xff0c;对象头(Mark Word) 是必不可缺的一环&#xff0c;因为synchronized 用的锁是存在对象头里的。32位的虚拟机上对象头占64位&#xff08;8字节&#xff09;&#xff0c;64位的虚拟机上对象头占128位(16字节&#xff09;[^objectHead]&#xff1b;而不同…

文字投影_店铺门口投影灯,引领店铺新潮流

在社会的进步下&#xff0c;现在人们物质生活越来越好&#xff0c;在原来消费的基础上也更加注重消费时店铺的装修、氛围。装修精致、环境优雅的店铺不仅更加容易吸引顾客&#xff0c;并且更加容易让顾客打卡发圈&#xff0c;无形中也帮自己做了一波宣传。上次我们出去游玩的时…