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

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

从官网的主页我们就可以看出,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。

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,则将一种颜色由浅到深显示

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

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

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

然后绘制图像

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

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

绘制出的图像如下

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

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

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

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

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

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

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则画出的盒形图是横向的。

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

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

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

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

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

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

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

绘制出的图像如下

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

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

绘制的图像如下

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

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

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

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

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

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()#添加图例

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

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

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

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

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

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

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

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

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

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

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

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

26.

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

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指定数据格子间的距离

28.

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

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

(0)

相关推荐

  • python如何爬取网站数据并进行数据可视化

    前言 爬取拉勾网关于python职位相关的数据信息,并将爬取的数据已csv各式存入文件,然后对csv文件相关字段的数据进行清洗,并对数据可视化展示,包括柱状图展示.直方图展示.词云展示等并根据可视化的数据做进一步的分析,其余分析和展示读者可自行发挥和扩展包括各种分析和不同的存储方式等..... 一.爬取和分析相关依赖包 Python版本: Python3.6 requests: 下载网页 math: 向上取整 time: 暂停进程 pandas:数据分析并保存为csv文件 matplotlib:

  • Python如何爬取实时变化的WebSocket数据的方法

    一.前言 作为一名爬虫工程师,在工作中常常会遇到爬取实时数据的需求,比如体育赛事实时数据.股市实时数据或币圈实时变化的数据.如下图: Web 领域中,用于实现数据'实时'更新的手段有轮询和 WebSocket 这两种.轮询指的是客户端按照一定时间间隔(如 1 秒)访问服务端接口,从而达到 '实时' 的效果,虽然看起来数据像是实时更新的,但实际上它有一定的时间间隔,并不是真正的实时更新.轮询通常采用 拉 模式,由客户端主动从服务端拉取数据. WebSocket 采用的是 推 模式,由服务端主动将数

  • Python实现数据可视化看如何监控你的爬虫状态【推荐】

    今天主要是来说一下怎么可视化来监控你的爬虫的状态. 相信大家在跑爬虫的过程中,也会好奇自己养的爬虫一分钟可以爬多少页面,多大的数据量,当然查询的方式多种多样.今天我来讲一种可视化的方法. 关于爬虫数据在mongodb里的版本我写了一个可以热更新配置的版本,即添加了新的爬虫配置以后,不用重启程序,即可获取刚刚添加的爬虫的状态数据. 1.成品图 这个是监控服务器网速的最后成果,显示的是下载与上传的网速,单位为M.爬虫的原理都是一样的,只不过将数据存到InfluxDB的方式不一样而已, 如下图. 可以

  • Python网络爬虫之爬取微博热搜

    微博热搜的爬取较为简单,我只是用了lxml和requests两个库 url= https://s.weibo.com/top/summary?Refer=top_hot&topnav=1&wvr=6 1.分析网页的源代码:右键--查看网页源代码. 从网页代码中可以获取到信息 (1)热搜的名字都在<td class="td-02">的子节点<a>里 (2)热搜的排名都在<td class=td-01 ranktop>的里(注意置顶微博是

  • 详解用python写网络爬虫-爬取新浪微博评论

    新浪微博需要登录才能爬取,这里使用m.weibo.cn这个移动端网站即可实现简化操作,用这个访问可以直接得到的微博id. 分析新浪微博的评论获取方式得知,其采用动态加载.所以使用json模块解析json代码 单独编写了字符优化函数,解决微博评论中的嘈杂干扰字符 本函数是用python写网络爬虫的终极目的,所以采用函数化方式编写,方便后期优化和添加各种功能 # -*- coding:gbk -*- import re import requests import json from lxml im

  • Python爬虫——爬取豆瓣电影Top250代码实例

    利用python爬取豆瓣电影Top250的相关信息,包括电影详情链接,图片链接,影片中文名,影片外国名,评分,评价数,概况,导演,主演,年份,地区,类别这12项内容,然后将爬取的信息写入Excel表中.基本上爬取结果还是挺好的.具体代码如下: #!/usr/bin/python #-*- coding: utf-8 -*- import sys reload(sys) sys.setdefaultencoding('utf8') from bs4 import BeautifulSoup imp

  • Python干货:分享Python绘制六种可视化图表

    可视化图表,有相当多种,但常见的也就下面几种,其他比较复杂一点,大都也是基于如下几种进行组合,变换出来的.对于初学者来说,很容易被这官网上众多的图表类型给吓着了,由于种类太多,几种图表的绘制方法很有可能会混淆起来. 因此,在这里,我特地总结了六种常见的基本图表类型,你可以通过对比学习,打下坚实的基础. 01. 折线图 绘制折线图,如果你数据不是很多的话,画出来的图将是曲折状态,但一旦你的数据集大起来,比如下面我们的示例,有100个点,所以我们用肉眼看到的将是一条平滑的曲线. 这里我绘制三条线,只

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

    seaborn是python中的一个非常强大的数据可视化库,它集成了matplotlib,下图为seaborn的官网,如果遇到疑惑的地方可以到官网查看.http://seaborn.pydata.org/ 从官网的主页我们就可以看出,seaborn在数据可视化上真的非常强大. 1.首先我们还是需要先引入库,不过这次要用到的python库比较多. import numpy as np import pandas as pd import matplotlib as mpl import matpl

  • Python数据可视化之Seaborn的使用详解

    目录 1. 安装 seaborn 2.准备数据 3.背景与边框 3.1 设置背景风格 3.2 其他 3.3 边框控制 4. 绘制 散点图 5. 绘制 折线图 5.1 使用 replot()方法 5.2 使用 lineplot()方法 6. 绘制直方图 displot() 7. 绘制条形图 barplot() 8. 绘制线性回归模型 9. 绘制 核密度图 kdeplot() 9.1 一般核密度图 9.2 边际核密度图 10. 绘制 箱线图 boxplot() 11. 绘制 提琴图 violinpl

  • Python 数据可视化之Seaborn详解

    目录 安装 散点图 线图 条形图 直方图 总结 安装 要安装 seaborn,请在终端中输入以下命令. pip install seaborn Seaborn 建立在 Matplotlib 之上,因此它也可以与 Matplotlib 一起使用.一起使用 Matplotlib 和 Seaborn 是一个非常简单的过程.我们只需要像之前一样调用 Seaborn Plotting 函数,然后就可以使用 Matplotlib 的自定义函数了. 注意: Seaborn 加载了提示.虹膜等数据集,但在本教程

  • 学会Python数据可视化必须尝试这7个库

    目录 一.Seaborn 二.Plotly 三.Geoplotlib 四.Gleam 五.ggplot 六.Bokeh 七.Missingo 一.Seaborn Seaborn 建于 matplotlib 库的之上.它有许多内置函数,使用这些函数,只需简单的代码行就可以创建漂亮的绘图.它提供了多种高级的可视化绘图和简单的语法,如方框图.小提琴图.距离图.关节图.成对图.热图等. 安装 ip install seaborn 主要特征: 可用于确定两个变量之间的关系. 在分析单变量或双变量分布时进行

  • Pytho常见的数据可视化库,小白必备

    一.Matplotlib Matplotlib是Python中众多数据可视化库的鼻祖,其设计风格与20世纪80年代设计的商业化程序语言MATLAB十分接近,具有很多强大且复杂的可视化功能.Matplotlib包含多种类型的API,可以采用多种方式绘制图表并对图表进行定制. 二.Seaborn Seaborn是基于Matplotlib进行高级封装的可视化库,它支持交互式界面,使绘制图表的功能变得更简单,且图表的色彩更具吸引力,可以画出丰富多样的统计图表. 三.ggplot ggplot是基于Mat

  • python数据可视化JupyterLab实用扩展程序Mito

    目录 遇见 Mito 如何启动 Mito 数据透视表 Mito 令人印象深刻的功能 可视化数据 自动代码生成 Mito 安装 JupyterLab 是 Jupyter 主打的最新数据科学生产工具,某种意义上,它的出现是为了取代Jupyter Notebook. 它作为一种基于 web 的集成开发环境,你可以使用它编写notebook.操作终端.编辑markdown文本.打开交互模式.查看csv文件及图片等功能. JupyterLab 最棒的体验就是有丰富的扩展插件,我记得过去我们不得不依赖 nu

  • python数据可视化Seaborn绘制山脊图

    目录 1. 引言 2. 举个栗子 3.山脊图 4.扩展 5.结论 1. 引言 山脊图一般由垂直堆叠的折线图组成,这些折线图中的折线区域间彼此重叠,此外它们还共享相同的x轴. 山脊图经常以一种相对不常见且非常适合吸引大家注意力的紧凑图的形式表现.观察上图,我们给其起名叫Ridge plot是非常恰当的,因为上述图表看起来确实很像山的脊背.此外,上述图像还有另一个称呼叫做Joy Plots–这主要是因为Joy Division乐队在如下专辑封面上采用了这种可视化形式. 2. 举个栗子 在介绍完山脊图

  • Python数据可视化处理库PyEcharts柱状图,饼图,线性图,词云图常用实例详解

    python可以在处理各种数据时,如果可以将这些数据,利用图表将其可视化,这样在分析处理起来,将更加直观.清晰,以下是 利用 PyEcharts 常用图表的可视化Demo, 开发环境 python3 柱状图 基本柱状图 from pyecharts import Bar # 基本柱状图 bar = Bar("基本柱状图", "副标题") bar.use_theme('dark') # 暗黑色主题 bar.add('真实成本', # label ["1月&q

  • Python数据可视化Pyecharts库实现桑葚图效果

    目录 基本思路我总结大概有三步: 1. 先申明使用sankey 2. 使用add 添加对sankey图的配置信息 3. 最后render生成html文件展示 首先介绍一下什么是桑葚图? 桑基图(Sankey diagram),即桑基能量分流图,也叫桑基能量平衡图. 它是一种特定类型的流程图,图中延伸的分支的宽度对应数据流量的大小,通常应用于能源.材料成分.金融等数据的可视化分析. 因1898年Matthew Henry Phineas Riall Sankey绘制的"蒸汽机的能源效率图"

  • Python数据可视化Pyecharts库的使用教程

    目录 一.Pyecharts 概述 1.1 Pyecharts 特性 1.2 Pyecharts 入门案例 二.Pyecharts 配置项 2.1 全局配置项 2.2 系列配置项 三.Pyecharts 的总结 一.Pyecharts 概述 Pyechart 是一个用于生成 Echarts 图表(Echarts 是基于 Javascript 的开源可视化图表库)的 Python 第三方库. 1.1 Pyecharts 特性 根据官方文档的介绍,Pyecharts 的特性如下: 1.简洁的 API

随机推荐