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

注:所有代码均在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

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

data:dataframe或者数组

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

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

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

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

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=["女","男"])

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]) 

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]) #右图

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) #右图

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]) #下图

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]) #右图

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]) #右图
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]) #右图
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]) #下图

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)

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

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

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

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

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

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

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

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

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

将X,Y轴互换

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

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

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

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

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

  1. python中seaborn画swarm图_Python可视化 | Seaborn5分钟入门(四)——stripplot和swarmplot

    微信公众号:「Python读财」 如有问题或建议,请公众号留言 Seaborn是基于matplotlib的Python可视化库. 它提供了一个高级界面来绘制有吸引力的统计图形.Seaborn其实是在m ...

  2. python boxplot orient_Python 可视化 | Seaborn5 分钟入门 (三)——boxplot 和 violinplot

    微信公众号:「Python读财」 如有问题或建议,请公众号留言 Seaborn是基于matplotlib的Python可视化库. 它提供了一个高级界面来绘制有吸引力的统计图形.Seaborn其实是在m ...

  3. python boxplot orient,Python可视化 | Seaborn5分钟入门(三)——boxplot和violinplot

    微信公众号:「Python读财」 如有问题或建议,请公众号留言 Seaborn是基于matplotlib的Python可视化库. 它提供了一个高级界面来绘制有吸引力的统计图形.Seaborn其实是在m ...

  4. python如何进入编程界面_Python可视化界面编程入门

    Python可视化界面编程入门具体实现代码如所示: (1)普通可视化界面编程代码入门: import sys from PyQt5.QtWidgets import QWidget,QApplicat ...

  5. python ppt 绘图_Python数据分析-Matplotlib绘图基础

    本文结构: 一.Matplotlib绘图基础及中文乱码解决 二.如何利用pandas绘图? 三.如何利用notebook制作分析报告? 图形在我们日常生活中无处不在.如果没有可视化,就是一些数字罗列, ...

  6. python 神经网络工具_神经网络15分钟入门!使用python从零开始写一个两层神经网络...

    本篇是该系列的第三篇,建议在阅读本篇文章之前先看前两篇文章. 在本文中将使用python实现之前描述的两层神经网络,并完成所提出的"象限分类"的问题. 需要注意的是,虽然标题叫做神 ...

  7. python鼠标绘图_python 基于opencv 实现一个鼠标绘图小程序

    需求 在画布上用鼠标画图,可以画圆或矩形,按m键在两种模式下切换.左键按下时开始画图,移动到哪儿画到哪儿,左键释放时结束画图. 实现思想 用鼠标画图:需要定义鼠标的回调函数mouse_event 画圆 ...

  8. python仪表盘绘图_Python制作仪表盘图,比Excel快速N倍

    之前写过一篇用Excel制作仪表盘图的教程高端大气上档次的Excel图形-仪表盘主要是利用环形图和饼图分别制成半圆环和指针,制作过程较为繁琐,且指针准确度不易掌控,这里我们用Python中的pyech ...

  9. python 三维绘图_Python三维绘图--Matplotlib

    编辑推荐: 本文主要介绍如何用python的matplotlib库中丰富的三维绘图工具进行绘图,运用三维图给我们对数据带来更加深入地理解,希望对大家有帮助. 本文来自于csdn ,由火龙果软件Alic ...

最新文章

  1. Windows 2003 + ISA 2006+单网卡×××配置(4)
  2. 推荐一个妹子,播报汽车新闻
  3. python django restful_详解Django rest_framework实现RESTful API
  4. BC:带你温习并解读《中国区块链技术和应用发展白皮书》—区块链标准体系框架
  5. CocoaPods安装和使用及问题:Setting up CocoaPods master repo
  6. 闲置服务器装win10系统,求高手帮看一下我这台闲置的老主机还能装win10或者win8.1吗?...
  7. python生成范围内随机数_如何使用Python中的pareto分布在specyfic范围内生成随机数...
  8. Script:查找表或索引增长的历史信息
  9. mysql 维护文档_mysql数据库维护文档
  10. 按键扫描——74HC164驱动(二)
  11. 关于报表在移动端展现你需要知道哪些?
  12. 关于商业计划书(Business Project,以下简称BP)写作那些事儿(一)
  13. 富集分析:(一)概述
  14. Element DateTimePicker 日期时间选择器 今天日期设置,并获取value值
  15. 十二黄金圣斗士-合辑-修复版-3D打印图纸
  16. python动画篮球大小_篮球比赛动画直播数据api接口示例
  17. input文本框--去首尾空格
  18. h5前端IE浏览器低版本判断及升级提示
  19. 应用进程占内存大问题分析方法
  20. 数据库课程设计-宿舍管理系统

热门文章

  1. [css] clear属性只对块级元素有效么?为何无法应用于行内元素?
  2. 工作108:vue里面wangEdit编辑器使用
  3. 前端学习(2526):Vuex成果和展示
  4. 前端学习(2225):react之类定义组件
  5. 前端学习(2124):双向绑定的案例图示分析
  6. 前端学习(1967)vue之电商管理系统电商系统之切换面板获取
  7. 前端学习(1940)vue之电商管理系统电商系统之代码提交
  8. 前端学习(1431):ajax封装六
  9. 前端学习(1430):ajax封装五
  10. shiro学习(13):springMVC结合shiro完成认证