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

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

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

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

?
1
2
3
4
5
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()函数还可以传入一些参数

?
1
2
3
4
5
6
7
8
9
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.根据均值和协方差绘图:

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

?
1
2
3
4
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

然后绘制图像

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

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

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

?
1
2
3
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.我们还可以传入其他参数:

?
1
2
3
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):绘制多层面板分类图。

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

绘制的图像如下

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

?
1
sns.factorplot(x="day",y="total_bill",hue="smoker",data=tips,kind="bar")
?
1
sns.factorplot(x="day",y="total_bill",hue="smoker",col="time",data=tips,kind="swarm")
?
1
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():这是一个很重要的绘图函数。

?
1
2
g = sns.FacetGrid(tips,col="time")
g.map(plt.hist,"tip")
?
1
2
3
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()#添加图例
?
1
2
g = sns.FacetGrid(tips,col="day",size=4,aspect=0.8)
g.map(sns.barplot,"sex","total_bill")

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

?
1
2
3
iris = sns.load_dataset("iris")
g = sns.PairGrid(iris)
g.map(plt.scatter)

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

?
1
2
3
g = sns.PairGrid(iris)
g.map_diag(plt.hist)  #指定对角线绘图类型
g.map_offdiag(plt.scatter)  #指定非对角线绘图类型
?
1
2
3
4
g = sns.PairGrid(iris, hue="species")
g.map_diag(plt.hist)
g.map_offdiag(plt.scatter)
g.add_legend()
?
1
2
g = sns.PairGrid(iris, vars=["sepal_length", "sepal_width"], hue="species",size=3)
g.map(plt.scatter)
?
1
2
3
g = sns.PairGrid(tips, hue="size", palette="GnBu_d")
g.map(plt.scatter, s=50, edgecolor="white")
g.add_legend()

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

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

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

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

26.

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

27.

?
1
2
3
4
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.

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

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

也许是最全java资料!(文档+项目+资料)【点击下载】 和努力的人一起学习Java!

(0)

相关推荐

  • 第126天:Seaborn-可视化统计关系

    大数据一直是近几年来比较火爆的方向,作为想接触大数据的你,就不得不了解 seaborn.它是当下 Python 非常流行的数据可视化库,可以绘制出美观且有价值的图形.用一句话总结就是对于大数据从业人员 ...

  • Seaborn常见绘图总结

    以前粗略的学习过Matplotlib绘图.Pandas绘图(这里是pandas的常见绘图总结),但是都未深入的去学习过,一遇到问题就翻文档,效率低下.听"他们"说matplotli ...

  • 第127天:Seaborn-可视化分类数据

    上一篇我们介绍了可视化表示数据集中各变量间关系的基本方法.在示例中,我们专注于两个数值变量之间的主要关系.如果其中一个主要变量是"可分类的"(能被分为不同的组),那么我们可以使用更 ...

  • 第128天:Seaborn-可视化数据集的分布

    上一篇我们介绍了介绍 seaborn 中分类数据的可视化图形表示.在处理数据过程中,我们通常想做的第一件事就是了解数据集中变量的分布情况,本篇将介绍 seaborn 中数据集分布情况的可视化图形表示. ...

  • [数据可视化]Seaborn简单介绍

    什么是SeabornSeaborn是基于matplotlib的图形可视化python包.它提供了一种高度交互式界面,便于用户能够做出各种有吸引力的统计图表.Seaborn是在matplotlib的基础 ...

  • Seaborn官方教程中文教程(一)

    seaborn官方文档翻译 统计分析是理解数据集中各个变量彼此关系的重要过程,通过统计分析,我们就可以洞见数据中隐藏的趋势和规律,更好的揭示数据之间的关系. 在本教程中我们主要讨论三种seaborn函 ...

  • (5条消息) 详细的数据可视化库之Seaborn教程(一)

    文章目录 seaborn(一)--可视化统计量间的关系(relationship) sns.relplot() 一.散点图:relplot(kind="scatter") 参数hu ...

  • 深度盘点 | 史上最全python数据可视化库

    有多少同学和小编一样,学习python的主要目的,是为了实现数据可视化?

  • Python数据可视化库有哪些?Python入门

    现如今,数据已经渗透到每一个行业和业务职能领域,成为重要的生产因素,正因如此数据分析岗位变得异常火爆.而Python作为数据分析的首选语言,它不仅有着独特的优势,还为数据分析提供了很多库,那么常见的P ...

  • 编程干货|这么多Python数据可视化库,你最喜欢哪个?

    而这个问题就正好涉及到了Python的数据可视化了. 很多同学学习Python的主要目的就是为了实现数据可视化. 而如何将我们的数据的特征更好的.更直观的展示出来,Python给出了很多解决方案. 今 ...

  • 盘点12个Python数据可视化库,通吃任何领域

    大家普遍第一次接触到的Python数据可视化库基本上都是Matplotlib.Python还有很多数据可视化库,本文盘点了12款常用的Python数据可视化库,挑选适合自己业务的那一款吧! 深入学习P ...

  • 常用的Python数据可视化库!Python基础入门

    Python是一门非常优秀的编程语言,被广泛的应用于各个领域,它不仅简单.易懂.语法清晰,还拥有各种各样的库,让我们的工作更高效.更便捷.今天为大家分享8个Python库,有了它们之后,数据可视化超轻 ...

  • (2条消息) 数据可视化技术:python数据可视化工具库汇总(共21个)

    Python数据可视化库 在数据分析中最好展示数据的方式就是形象地绘制对应的图像,让人能够更好地理解数据.什么样的数据.什么样的场景用什么样的图表都是有一定的规定的.(这个以后写一篇博客来记录一下.当 ...

  • Python数据可视化的完整版操作指南(建议收藏)

    让我们看一下使用Python进行数据可视化的主要库以及可以使用它们完成的所有类型的图表.我们还将看到建议在每种情况下使用哪个库以及每个库的独特功能. 我们将从最基本的可视化开始,直接查看数据,然后继续 ...

  • Python数据可视化:数据分析中的6个常用图

    折线图: 折线图用于显示数据在一个连续的时间间隔或者时间跨度上的变化,它的特点是反映事物随时间或有序类别而变化的趋势.示例图如下: 折线图应用场景: 折线图适合X轴是一个连续递增或递减的,对于没有规律 ...