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,一经查实,立即删除!

相关文章

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

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

课堂练习-水帖之王(水王)

今天的课堂练习是关于众数的查找。但是在这个枯燥的算法上,老师提出了一个很有意思而且很贴近我们日常上网生活的情景:有一个网友,他在一个吧里发帖数最多,而且占到了一半以上, 现在给出所有的帖子以及帖主的姓名&…

group by 与 order by

group by 1.对重复的数据合并分组,(group by a,b a列和b列的行数据相等才会合并)2.分组筛选(having\聚合函数)3.对各分组数据进行统计(聚合函数) order by order by a,b (先按a排序再按b排序)转载于:https://www.cnblogs.com/Ewin/archive/2009/10/05/1578293.html

只腐蚀毛刺 腐蚀算法_图像的腐蚀 膨胀及细化

转载:http://blog.sina.com.cn/s/blog_4bdb170b0100sgtj.html今天所讲的内容属于一门新兴的学科:数学形态学(Mathematical Morphology)。说起来很有意思,它是法国和德国的科学家在研究岩石结构时建立的一门学科。形态学的用途主要是获取物体拓…

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

原标题:计算机考研|这两所自划线,单科没过线也能复试?东南、浙大!单科没过线也能复试!关注量子考研公众号,获取最新计算机考研咨询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…

Python 各种应用收集

--共享文件的web server把文件放到一个目录中,使用终 端进入这个目录,输入python -m SimpleHTTPServer 8888。然后访问ip:8888。这个也 可以不过麻烦些:python -c "import SimpleHTTPServer ; SimpleHTTPServer.test()"转载于:http…

联想微型计算机M3500q怎么拆,联想ThinkCentre 超级Q 23 创新插拔 一机多用

继PC小型化、一体化风潮之后,联想再次取得突破性创新,为用户带来全球首创二合一可插拔一体机——ThinkCentre 超极Q 23继PC小型化、一体化风潮之后,联想再次取得突破性创新,为用户带来全球首创二合一可插拔一体机——ThinkCentre …

js正则匹配闭合标签_正则匹配闭合HTML标签(支持嵌套)

OK,先确定我们要解决的问题——从一段Html文本中找出特定id的标签的innerHTML。这里面最大的难点就是,Html标签是支持嵌套的,怎么能够找到指定标签相对应的闭合标签呢?我们可以这样想,先匹配最前面的起始标签&#xff…

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

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

Java基础之线程池

Java基础之线程池 转载于:https://www.cnblogs.com/daierge/p/10954228.html

工作387-vant控制日期范围

<van-cell-group><van-switch-cell size"26px" :active-value"active" active-color"#FFA9B5" inactive-color"#FFA9B5" v-model"checked" change"ChangeStatus" title"大姨妈来了" /><…

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

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

计算机硬件技术基础5章在线,《计算机硬件技术基础》试题(D)

有关《计算机硬件技术基础》,能够方便考生复习,保证不挂科。(D)一、单项选择题(每题1分&#xff0c;共20分)1、计算机的性能在很大程度上是由CPU决定的。CPU的性能主要体现为它的运算速度。下列有关计算机性能的叙述正确的是()。A、计算机中cache 存储器的有无和容量的大小对计…

关键词提取算法

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

工作388-jq返回实例

$ : function(tagId){return document.getElementById(tagId);},/*创建一个dom的类名*/$c : function(tagName){return document.createElement(tagName);},

JavaWeb的分页

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

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

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

【异常(待解决)】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…