Seaborn 是 Python 的数据可视化工具之一,它其实是在 Matplotlib 的基础上进行了更高级的 API 封装。Seaborn 可视为 Matplotlib 的补充,而不是替代,使用 Seaborn 可以更轻松地画出更漂亮的图形。

Seaborn 的特点如下:

内置数个经过优化的样式效果;

增加调色板工具,可以很方便地为数据搭配颜色;

单变量和双变量分布绘图更为简单,可用于对数据子集相互比较;

对独立变量和相关变量进行回归拟合和可视化更加便捷;

对数据矩阵进行可视化,并使用聚类算法进行分析;

基于时间序列的绘制和统计功能,具有更加灵活的不确定度估计。

基于网格绘制出更加复杂的图像集合。

除此之外,Seaborn 对 Matplotlib 和 pandas 的数据结构高度兼容,非常适合作为数据挖掘过程中的可视化工具。

Seaborn 安装

Seaborn 依赖于 Matplotlib、NumPy、SciPy 和 pandas,与这些库一样是需要单独安装的。下面介绍用 pip 安装 Seaborn 的方法。

1) 按【Windows】+【R】键,进入 cmd 命令窗口。

2) 在 cmd 命令窗口中输入“pip install seaborn”命令,按【Enter】键,进入 Seaborn 模块安装界面,如图 1 所示。

图 1:安装 seaborn 软件包

3) 安装成功就会提示“Successfully installed seaborn-0.9.0”。

Seaborn 绘图函数

Seaborn 共有 50 多个 API 类,相比于 Matplotlib 数千个的规模,可谓极为精简。下面介绍 Seaborn 常用的绘图函数。

1) set() 函数

set() 是样式设置语句,它可对原图样式进行快速优化,如使用 set() 可以设置默认样式。其语法格式如下:

seaborn.set(context='notebook', style='darkgrid', palette='deep',

font='sans-serif', font_scale=1, color_codes=False, rc=None)

参数说明如下。

context:该参数控制着默认的画幅大小,取值范围为 {paper, notebook, talk, poster}。其中,poster>talk>notebook>paper。

style:该参数控制默认样式,取值范围为 {darkgrid, whitegrid, dark, white, ticks}。

palette:该参数为预设的调色板。取值范围为 {deep, muted, bright, pastel, dark, colorblind}。

font:用于设置字体。

font_scale:用于设置字体大小。

color_codes:表示不使用调色板而采用先前的 'r' 等色彩缩写。

注意:set() 样式设置语句需要放置在 Matplotlib 原本的绘图语句前面。

2) displot() 函数

displot() 集合了 hist() 直方图与核函数估计 kdeplot 的功能,其语法格式如下:

seaborn.distplot(a, bins=None, hist=True, kde=True, rug=False, fit=None,

hist_kws=None, kde_kws=None, rug_kws=None, fit_kws=None, color=None,

vertical=False, norm_hist=False, axlabel=None, label=None, ax=None)

参数说明如下:

a:表示数据来源,接收Series、一维数组、list;

bins:表示矩形图数量;

hist:表示是否显示直方图;

kde:表示是否显示核函数估计图;

rug:用于控制是否显示观察的小细毛(边际毛毯);

fit:用于控制拟合的参数分布图形;

vertical:表示显示正交控制。

示例代码 example1.py 如下。

# -*- coding: utf-8 -*-

import seaborn as sns

import matplotlib.pyplot as plt

import numpy as np

x = np.random.normal(size=200)

sns.distplot(x)

plt.show()

3) barplot() 函数

barplot() 用于描述某种变量分布的平均值,其语法格式如下:

seaborn.barplot(x=None,y=None,hue=None,data=None,order=None,hue_order=None,

ci=95, n_boot=1000, units=None, orient=None, color=None, palette=None,

saturation=0.75, errcolor='.26', errwidth=None, capsize=None, ax=None,

estimator=,**kwargs)

参数说明如下:

x、y、hue:设置 x、y 以及颜色控制的变量;

data:表示输入的数据集;

order、hue_order:表示控制变量绘图的顺序;

estimator:设置每类变量的计算函数,默认为平均值,可以修改为 max、median、min 等;

ax:用于设置子图位置;

orient:用于控制绘图的方向,取值 {v,h},分别表示绘图为水平或者竖直方向;

capsize:表示设置误差棒帽条的宽度。

示例代码 example2.py 如下。

# -*- coding: utf-8 -*-

import seaborn as sns

import matplotlib.pyplot as plt

sns.set(style='whitegrid')

tips = sns.load_dataset("tips") #载入自带数据集

ax = sns.barplot(x="day", y="total_bill", hue="sex", data=tips)

plt.show()

4) countplot() 函数

countplot() 函数用来计数,其语法格式如下:

seaborn.countplot(x=None, y=None, hue=None, data=None, order=None,

hue_order=None, orient=None, color=None, palette=None, saturation=0.75,

ax=None, **kwargs)

参数说明如下:

x、y、hue:设置 x、y 以及颜色控制的变量;

data:表示输入的数据集;

order、hue_order:用于控制变量绘图的顺序;

orient:用于控制绘图的方向,取值 {v,h},分别表示绘图为水平或者竖直方向;

color:表示颜色;

palette:表示调色板颜色;

ax:用于设置子图位置。

示例代码 example3.py 如下。

# -*- coding: utf-8 -*-

import seaborn as sns

import matplotlib.pyplot as plt

sns.set(style='whitegrid')

titanic = sns.load_dataset("titanic") #载入自带数据集

print(titanic)

sns.countplot(x="alone", hue="who", data=titanic)

plt.show()

5) boxplot() 函数

boxplot() 函数可以表示数据的位置和分散情况,还能区分异常点。用该函数可绘制箱式图,其语法格式如下:

seaborn.boxplot(x=None, y=None, hue=None, data=None, order=None, hue_order

=None, orient=None, color=None, palette=None, saturation=0.75, width=0.

fliersize=5, linewidth=None, whis=1.5, notch=False, ax=None, **kwargs)

函数中大部分参数与 countplot() 函数参数相同,少数不同参数采用默认值。

示例代码 example4.py 如下。

# -*- coding: utf-8 -*-

import seaborn as sns

import matplotlib.pyplot as plt

sns.set(style='whitegrid')

tips = sns.load_dataset("tips") #载入自带数据集

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

plt.show()

6) lmplot() 函数

lmplot() 函数是一种集合基础绘图与基于数据建立回归模型的绘图方法。旨在创建一个方便拟合数据集回归模型的绘图方法,利用 'hue'、'col'、'row' 参数来控制绘图变量。其语法格式如下:

seaborn.lmplot(x,y,data,hue=None,col=None,row=None,palette=None,col_wrap

=None,size=5,aspect=1,markers='o',sharex=True,sharey=True,hue_order=None,

col_order=None,row_order=None,legend=True,legend_out=True,x_estimator

=None,x_bins=None,x_ci='ci',scatter=True,fit_reg=True,ci=95,n_boot=1000,

units=None,order=1,logistic=False,lowess=False,robust=False,logx=False,

x_partial=None,y_partial=None,truncate=False,x_jitter=None,y_jitter=None,

scatter_kws=None,line_kws=None)

参数说明如下:

x,y:接收 string,表示横纵坐标的列名;

data:表示输入的数据集;

hue,col,row:接收 string,定义数据子集的变量,并在不同的图像子集中绘制;

palette:表示调色板颜色;

size:接收 scalar(标量),定义子图的高度,为可选项;

markers:可选项,定义散点的图标;

col_wrap:接收 int,可选项,设置每行子图数量;

order:接收 int,可选项,表示多项式回归,设定为指数;

logistic:接收 bool,可选项,表示逻辑回归;

logx:接收 bool,可选项,转化为 log(x);

以Seaborn内置的tips小费数据集为例,该数据集的部分数据如下。

total_bill tip sex smoker day time size

0 16.99 1.01 Female No Sun Dinner 2

1 10.34 1.66 Male No Sun Dinner 3

2 21.01 3.50 Male No Sun Dinner 3

运用 lmplot() 方法研究小费 tips 与总消费金额 total_bill 在吸烟与不吸烟人之间的关系。其示例代码 example5.py 如下。

# -*- coding: utf-8 -*-

import seaborn as sns

import matplotlib.pyplot as plt

sns.set(style='whitegrid')

tips = sns.load_dataset("tips") #载入自带数据集

print(tips)

#研究小费tips与总消费金额total_bill在吸烟与不吸烟人之间的关系

g = sns.lmplot(x="total_bill", y="tip", row="smoker",data=tips)

plt.show()

运行输出结果如图 2 所示。

图 2:example5.py 运行输出结果

7) pairplot() 函数

pairplot() 函数可绘制多变量图,使用 pairplot() 函数可以绘制 x 的每一维度与对应 y 的散点图。通过设置 size 和 aspect 参数可调节显示的大小和比例,其语法格式如下:

seaborn.pairplot(data, hue=None, hue_order=None, palette=None, vars=None,

x_vars=None, y_vars=None, kind=’scatter’, diag_kind=’hist’,markers=None,

size=2.5, aspect=1, dropna=True, plot_kws=None, diag_kws=None, grid_kws=None)

基本参数说明如下:

data:表示输入的数据集;

hue:接收 string,使用指定变量为分类变量画图;

hue_order:用字符串列表,调整调色板中 hue 变量的级别;

palette:表示调色板颜色;

size:接收 numeric,表示图的尺度大小(正方形),默认为 6;

markers:可选项,使用不同的形状表示散点的图标。

示例代码 example6.py 如下。

# -*- coding: utf-8 -*-

import pandas as pd

import matplotlib.pyplot as plt

import seaborn as sns

from sklearn import datasets

#绘制多变量图

iris = sns.load_dataset("iris")

sns.pairplot(iris)

plt.show()

python seaborn教程_Seaborn绘图简明教程相关推荐

  1. C语言简明教程,C语言简明教程

    C语言是一种结构化的计算机程序设计语言,具有使用灵活.表达能力强,兼具高级语言和低级语言双重功能等特点,是各大院校计算机程序设计入门课程的*语言之一.本书以应用性为中心,以培养程序设计思想和程序设计能 ...

  2. cmakelist官方教程_CMakeLists编辑简明教程

    备注:明确说明简明教程,背景就是新建一个工程文件夹且称之为test里面include文件夹放所有头文件,src放所有源文件,CMakeLists.txt直接放在test文件夹下,不引入任何其他库,例如 ...

  3. python画图程序实验报告_Python绘图简明教程

    前言 本文纯科普向. 主要介绍一下Python上最好用的2D图形绘制库matplotlib的安装以及一些基础操作. 选择Python是因为其强大的第三方库和优秀便捷的语法,并且能方便地对数据进行后续处 ...

  4. python继承和多态_Python 简明教程 --- 21,Python 继承与多态

    程序不是年轻的专利,但是,它属于年轻. 目录 我们已经知道封装,继承和多态 是面向对象的三大特征,面向对象语言都会提供这些机制. 1,封装 在这一节介绍类的私有属性和方法的时候,我们已经讲到过封装. ...

  5. Python中的多进程并行简明教程

    1. 什么是多进程并行 一般来说,多进程意味着并行运行两个或者多个任务.在Python中我们可以使用python内置的multiprocessing模块来实现这一功能. 我们来举个栗子,假设我们需要运 ...

  6. Python中的Assert语句简明教程

    1. 引言 如果你是一个Python新手,那么你可能会在一些代码中看到assert关键字的语句.对于该语句,有人喜欢有人不喜欢,本文重点介绍Assert语句的作用以及什么时候应该使用该语句. 闲话少说 ...

  7. python svr回归_SVR回归分析简明教程

    关于使用SVM进行回归分析的介绍很少,在这里,我们讨论一下SVR的理论知识,并对该方法有一个简明的理解. SVR简单介绍 SVR全称是support vector regression,是SVM(支持 ...

  8. JSP入门教程:JSP简明教程

    一. 什么是JSP JSP(JavaServer Pages)是由Sun Microsystems公司倡导.许多公司参与一起建立的一种 动态 网页技术标准,其网址为http://www.javasof ...

  9. EaselJS简明教程2-动画

    系列教程目录 EaselJS简明教程1-绘图 EaselJS简明教程2-动画 EaselJS简明教程2动画,动画是将静止的画面变为动态的艺术,由静止到动态的实现,主要依靠人眼的视觉残留效应. 动画可以 ...

最新文章

  1. 电话连线(最小生成树)
  2. Python数据结构与算法(第三天)
  3. [java设计模式简记] 观察者模式(Observer-Pattern)
  4. 2021广东高考成绩排名如何查询,2021年广东高考个人排名怎么查询,广东高考成绩排名查询方法...
  5. webform中提交按钮同时执行更新和插入操作_软件测试中的功能测试点(三)
  6. Redis简单命令(部分示例代码)
  7. js顺序加载与并行加载
  8. 3D控件Aspose.3D 18年新版V18.1发布 | 附下载
  9. 计算机二级 office 英语,计算机二级office题库及答案
  10. Android 蓝牙 BLE扫描、广播、连接、数据收发源码分析(2)- inquiry扫描周围设备
  11. 将H.264封装为FLV格式
  12. [计算机通信网络]Packet tracer中laptop连接无线路由器
  13. HTML中的 meta 标签
  14. python pdb调试多进程_PDB远程调试Python多进程子程序
  15. 计算机一打开就卡在更新失败,做系统一直在正在启动画面-电脑开机后卡在“正在启动windows”界面,怎么办?...
  16. 从MUD到MMO——虚拟世界发展简史以及未来可能性的杂谈
  17. Sqoop实践——原始数据库到大数据时代必备神器
  18. 机器与人类的结合:外骨骼机器人的现状和趋势
  19. java验证iap支付收据
  20. Python shuffle() 函数---元素随机排序

热门文章

  1. 海尔推出空气盒子的背后阳谋
  2. SCD节点产品化实现
  3. 实战-赶集网爬虫requests
  4. 【增强学习】Torch中的增强学习层
  5. 7 款优秀 Vim 插件帮你打造完美 IDE!
  6. python怎么变成动图_教你用 Python 生成 GIF 动图 !
  7. 官网下载MySQL安装包流程
  8. R语言limma包差异表达分析
  9. GitLab下载源码的两种方式(https/ssh-key)
  10. c语言程序设计中数据类型有哪些,c语言中基本数据类型有哪些