Python数据可视化库seaborn的使用总结


Posted in Python onJanuary 15, 2019

seaborn是python中的一个非常强大的数据可视化库,它集成了matplotlib,下图为seaborn的官网,如果遇到疑惑的地方可以到官网查看。http://seaborn.pydata.org/

Python数据可视化库seaborn的使用总结

从官网的主页我们就可以看出,seaborn在数据可视化上真的非常强大。

1.首先我们还是需要先引入库,不过这次要用到的python库比较多。

import numpy as np
import pandas as pd
import matplotlib as mpl
import matplotlib.pyplot as plt
import seaborn as sns

2.sns.set_style():不传入参数用的就是seaborn默认的主题风格,里面的参数共有五种

  • darkgrid
  • whitegrid
  • dark
  • white
  • ticks

我比较习惯用whitegrid。

Python数据可视化库seaborn的使用总结

3.下面说一下seaborn里面的调色板,我们可以用sns.color_palette()获取到这些颜色,然后用sns.palplot()将这些色块打印出来。color_palette()函数还可以传入一些参数

sns.palplot(sns.color_palette("hls",n))#显示出n个不同颜色的色块
sns.palplot(sns.color_palette("Paired",2n))#显示出2n个不同颜色的色块,且这些颜色两两之间是相近的
sns.palplot(sns.color_palette("color"))#由浅入深显示出同一颜色的色块
sns.palplot(sns.color_palette("color_r"))##由深入浅显示出同一颜色的色块
sns.palplot(sns.color_palette("cubehelix",n))#显示出n个颜色呈线性变化的色块
sns.palplot(sns.cubehelix_palette(k,start=m,rot=n))#显示出k个start(0,3)为m,rot(-1,1)为n的呈线性变化的色块
sns.palplot(sns.light_palette("color"))#将一种颜色由浅到深显示
sns.palplot(sns.dark_palette("color"))#将一种颜色由深到浅显示
sns.palplot(sns.dark_palette("color",reverse=bool))#reverse的值为False,则将一种颜色由深到浅显示;若为True,则将一种颜色由浅到深显示

Python数据可视化库seaborn的使用总结

Python数据可视化库seaborn的使用总结

Python数据可视化库seaborn的使用总结

4.sns.kdeplot(x,y,cmap=pal):绘制核密度分布图。

Python数据可视化库seaborn的使用总结

5.sns.distplot(x,kde=bool,bins=n):kde代表是否进行核密度估计,也就是是否绘制包络线,bins指定绘制的条形数目。

Python数据可视化库seaborn的使用总结

6.根据均值和协方差绘图:

首先我们要根据均值和协方差获取数据

mean,cov = [m,n],[(a,b),(c,d)]#指定均值和协方差
data = np.random.multivariate_normal(mean,cov,e)#根据均值和协方差获取e个随机数据
df = pd.DataFrame(data,columns=["x","y"])#将数据指定为DataFrame格式
df

Python数据可视化库seaborn的使用总结

然后绘制图像

sns.jointplot(x="x",y="y",data=df) #绘制散点图

Python数据可视化库seaborn的使用总结

sns.jointplot(x="x",y="y",data=df)可以绘制出x和y单变量的条形图以及x与y多变量的散点图。

7.在jointplot()函数中传入kind=“hex”,能够在数据量比较大时让我们更清晰地看到数据的分布比重。

x,y = np.random.multivariate_normal(mean,cov,2000).T
with sns.axes_style("white"):
  sns.jointplot(x=x,y=y,kind="hex",color="c")

绘制出的图像如下

Python数据可视化库seaborn的使用总结

8.sns.pairplot(df):绘制出各变量之间的散点图与条形图,且对角线均为条形图。

Python数据可视化库seaborn的使用总结

在这里我们可以先使用df = sns.load_dataset("")将seaborn中原本带有的数据读入或用pandas读取。

9.绘制回归分析图:这里可以用两个函数regplot()lmplot(),用regplot()更好一些。

Python数据可视化库seaborn的使用总结

如果两个变量不适合做回归分析,我们可以传入x_jitter()y_jitter()让x轴或y轴的数据轻微抖动一些,得出较为准确的结果。

Python数据可视化库seaborn的使用总结

10.sns.stripplot(x="",y="",data=df,jitter=bool):绘制一个特征变量中的多个变量与另一变量关系的散点图,jitter控制数据是否抖动。

Python数据可视化库seaborn的使用总结

11.sns.swarmplot(x="",y="",hue="",data=df):绘制页状散点图,hue指定对数据的分类,由于在大量数据下,上面的散点图会影响到我们对数据的观察,这种图能够更清晰地观察到数据分布。

Python数据可视化库seaborn的使用总结

Python数据可视化库seaborn的使用总结

12.sns.boxplot(x="",y="",hue="",data=df,orient="h"):绘制盒形图,hue同样指定对数据的分类。在统计学中有四分位数的概念,第一个四分位记做Q1,第二个四分位数记做Q2,第三个四分位数记做Q3,Q3-Q1得到的结果Q叫做四分位距,如果一个数n,n的范围是n<Q1-1.5Q或n>Q3+1.5Q,则称n为离群点,也就是不符合数据规范的点,利用盒形图可以很清晰地观察到离群点。如果传入orient则画出的盒形图是横向的。

Python数据可视化库seaborn的使用总结

13.sns.violinplot(x="",y="",data=df,hue="",split=bool):绘制小提琴图,split表示是否将两类数据分开绘制,如果为True,则不分开绘制,默认为False。

Python数据可视化库seaborn的使用总结

Python数据可视化库seaborn的使用总结

14.还可以将页状散点图和小提琴图在一起绘制,只需将两个绘图命令

Python数据可视化库seaborn的使用总结

inner="None"表示去除小提琴图内部的形状。

15.sns.barplot(x="",y="",hue="",data=df):按hue的数据分类绘制条形图。

Python数据可视化库seaborn的使用总结

16.sns.pointplot(x="",y="",hue="",data=df):绘制点图,点图可以更好的描述数据的变化差异。

Python数据可视化库seaborn的使用总结

17.我们还可以传入其他参数:

sns.pointplot(x="class",y="survived",hue="sex",data=titanic,
       palette={"male":"#02ff96","female":"#0980e6"},#指定曲线的颜色
       markers=["s","d"],linestyles=["-","-."])#指定曲线的点型和线型

绘制出的图像如下

Python数据可视化库seaborn的使用总结

18.sns.factorplot(x="", y="", hue="", data=df):绘制多层面板分类图。

sns.factorplot(x="day",y="total_bill",hue="smoker",data=tips)

绘制的图像如下

Python数据可视化库seaborn的使用总结

19.sns.factorplot(x="",y="",hue="",data=df,kind=""):kind中指定要画图的类型。

sns.factorplot(x="day",y="total_bill",hue="smoker",data=tips,kind="bar")

Python数据可视化库seaborn的使用总结

sns.factorplot(x="day",y="total_bill",hue="smoker",col="time",data=tips,kind="swarm")

Python数据可视化库seaborn的使用总结

sns.factorplot(x="time",y="total_bill",hue="smoker",col="day",data=tips,kind="box",size=5,aspect=0.8) #aspect指定横纵比

Python数据可视化库seaborn的使用总结

20.sns.factorplot()的参数:

  • x,y,hue 数据集变量 变量名。
  • date 数据集 数据集名。
  • row,col 更多分类变量进行平铺显示 变量名。
  • col_wrap 每行的最高平铺数 整数。
  • estimator 在每个分类中进行矢量到标量的映射 矢量。
  • ci 置信区间 浮点数或None。
  • n_boot 计算置信区间时使用的引导迭代次数 整数。
  • units 采样单元的标识符,用于执行多级引导和重复测量设计 数据变量或向量数据。
  • order, hue_order 对应排序列表 字符串列表。
  • row_order, col_order 对应排序列表 字符串列表。
  • kind : 可选:point 默认, bar 柱形图, count 频次, box 箱体, violin 提琴, strip 散点,swarm 分散点 size 每个面的高度(英寸) 标量 aspect 纵横比 标量 orient 方向 "v"/"h" color 颜色 matplotlib颜色 palette 调色板 seaborn颜色色板或字典 legend hue的信息面板 True/False legend_out 是否扩展图形,并将信息框绘制在中心右边 True/False share{x,y} 共享轴线 True/False。

21.sns.FacetGrid():这是一个很重要的绘图函数。

g = sns.FacetGrid(tips,col="time")
g.map(plt.hist,"tip")

Python数据可视化库seaborn的使用总结

g = sns.FacetGrid(tips,col="sex",hue="smoker",size=5,aspect=1)
g.map(plt.scatter,"total_bill","tip",alpha=0.3,s=100)#alpha指定点的透明度,s指定点的大小
g.add_legend()#添加图例

Python数据可视化库seaborn的使用总结

g = sns.FacetGrid(tips,col="day",size=4,aspect=0.8)
g.map(sns.barplot,"sex","total_bill")

Python数据可视化库seaborn的使用总结

22.sns.PairGrid():将各变量间的关系成对绘制。

iris = sns.load_dataset("iris")
g = sns.PairGrid(iris)
g.map(plt.scatter)

Python数据可视化库seaborn的使用总结

23.g.map_diag()g.map_offdiag():绘制对角线和非对角线的图形

g = sns.PairGrid(iris)
g.map_diag(plt.hist)  #指定对角线绘图类型
g.map_offdiag(plt.scatter)  #指定非对角线绘图类型

Python数据可视化库seaborn的使用总结

g = sns.PairGrid(iris, hue="species")
g.map_diag(plt.hist)
g.map_offdiag(plt.scatter)
g.add_legend()

Python数据可视化库seaborn的使用总结

g = sns.PairGrid(iris, vars=["sepal_length", "sepal_width"], hue="species",size=3)
g.map(plt.scatter)

Python数据可视化库seaborn的使用总结

g = sns.PairGrid(tips, hue="size", palette="GnBu_d")
g.map(plt.scatter, s=50, edgecolor="white")
g.add_legend()

Python数据可视化库seaborn的使用总结

24.sns.heatmap():绘制热度图,热度图可以很清楚看到数据的变化情况以及变化过程中的最大值和最小值。

uniform_data = np.random.rand(3, 3)
print (uniform_data)
heatmap = sns.heatmap(uniform_data)

Python数据可视化库seaborn的使用总结

25.向heatmap()中传入参数vmin=vmax=

ax = sns.heatmap(uniform_data,vmin=0.2,vmax=0.5) 
#超过最大值都是最大值的颜色,小于最小值都是最小值的颜色

Python数据可视化库seaborn的使用总结

26.

normal_data = np.random.randn(3, 3)
print (normal_data)
ax = sns.heatmap(normal_data, center=0)  #center指定右侧图例的中心值

Python数据可视化库seaborn的使用总结

27.

flights = sns.load_dataset("flights")
flights = flights.pivot("month", "year", "passengers")
ax = sns.heatmap(flights, annot=True,fmt="d",linewidth=0.5)  
#annot指定是否显示数据,fmt指定数据的显示格式,linewidth指定数据格子间的距离

Python数据可视化库seaborn的使用总结

28.

ax = sns.heatmap(flights, cmap="YlGnBu",cbar=True) 
#cmap指定图形颜色,cbar表示是否绘制右侧图例。

Python数据可视化库seaborn的使用总结

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
利用python微信库itchat实现微信自动回复功能
May 18 Python
Python cookbook(数据结构与算法)让字典保持有序的方法
Feb 18 Python
Python中一些不为人知的基础技巧总结
May 19 Python
在python中利用最小二乘拟合二次抛物线函数的方法
Dec 29 Python
Apache,wsgi,django 程序部署配置方法详解
Jul 01 Python
对python中的os.getpid()和os.fork()函数详解
Aug 08 Python
Cython编译python为so 代码加密示例
Dec 23 Python
python多进程下的生产者和消费者模型
May 07 Python
Python爬虫实例——scrapy框架爬取拉勾网招聘信息
Jul 14 Python
python爬虫使用正则爬取网站的实现
Aug 03 Python
pytorch交叉熵损失函数的weight参数的使用
May 24 Python
Python利用zhdate模块实现农历日期处理
Mar 31 Python
使用Django连接Mysql数据库步骤
Jan 15 #Python
Django框架模板介绍
Jan 15 #Python
python使用PIL实现多张图片垂直合并
Jan 15 #Python
python实现多张图片拼接成大图
Jan 15 #Python
解决新版Pycharm中Matplotlib图像不在弹出独立的显示窗口问题
Jan 15 #Python
python实现创建新列表和新字典,并使元素及键值对全部变成小写
Jan 15 #Python
Python数据可视化之画图
Jan 15 #Python
You might like
PHP中的array数组类型分析说明
2010/07/27 PHP
使用PHP强制下载PDF文件示例
2014/01/17 PHP
PHP中可以自动分割查询字符的Parse_str函数使用示例
2014/07/25 PHP
修改destoon会员公司的伪静态中的com目录的方法
2014/08/21 PHP
php自定义函数实现二维数组按指定key排序的方法
2016/09/29 PHP
php源码的使用方法讲解
2019/09/26 PHP
PDO实现学生管理系统
2020/03/21 PHP
JQuery扩展插件Validate—4设置错误提示的样式
2011/09/05 Javascript
jQuery学习笔记 更改jQuery对象
2012/09/19 Javascript
用示例说明filter()与find()的用法以及children()与find()的区别分析
2013/04/26 Javascript
通过javascript获取iframe里的值示例代码
2013/06/24 Javascript
深入分析jquery解析json数据
2014/12/09 Javascript
jQuery实现瀑布流的取巧做法分享
2015/01/12 Javascript
利用JQuery写一个简单的异步分页插件
2016/03/07 Javascript
jQuery中使用animate自定义动画的方法
2016/05/29 Javascript
Nodejs中 npm常用命令详解
2016/07/04 NodeJs
Angular ng-repeat遍历渲染完页面后执行其他操作详细介绍
2016/12/13 Javascript
vue中子组件向父组件传递数据的实例代码(实现加减功能)
2018/04/20 Javascript
JS构造一个html文本内容成文件流形式发送到后台
2018/07/31 Javascript
JavaScript Array对象使用方法解析
2019/09/24 Javascript
p5.js临摹动态图形的方法
2019/10/23 Javascript
[52:06]FNATIC vs NIP 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
python基础教程之popen函数操作其它程序的输入和输出示例
2014/02/10 Python
CentOS下Python3的安装及创建虚拟环境的方法
2018/11/28 Python
解决python3 Pycharm上连接数据库时报错的问题
2018/12/03 Python
利用python读取YUV文件 转RGB 8bit/10bit通用
2019/12/09 Python
python socket通信编程实现文件上传代码实例
2019/12/14 Python
关于pycharm 切换 python3.9 报错 ‘HTMLParser‘ object has no attribute ‘unescape‘ 的问题
2020/11/24 Python
利用CSS3的线性渐变linear-gradient制作边框的示例
2016/06/02 HTML / CSS
SAZAC的动物连体衣和动物睡衣:Kigurumi Shop
2020/03/14 全球购物
十一个高级MySql面试题
2014/10/06 面试题
乡镇干部先进事迹材料
2014/02/03 职场文书
岗位廉洁从业承诺书
2014/03/28 职场文书
就业协议书盖章的注意事项
2014/09/28 职场文书
2015年三好一满意工作总结
2015/07/24 职场文书
2019年个人工作总结范文(3篇)
2019/08/27 职场文书