matplotlib 是 python 的绘图工具,这篇笔记记录了 matplotlib 库的使用。seaborn 库是以 matplotlib 库为基础的更高阶库,绘出的图也更加美观。使用 seaborn 库首先要导入。

import seaborn as sns

sns.set() 方法即可美化 matplotlib 画出的图形。美化的图形从白底变为了灰底,并且有网格,在图形颜色和字体等方面也有美化,例如。

sns.set()
x = [1, 3, 5, 7, 9, 11, 13, 15, 17, 19]
y = [3, 4, 6, 8, 9, 10, 9, 11, 7, 8]
plt.plot(x, y)

set() 方法中还有一些参数可以设置。context 控制画的大小,可选值由大到小有 papernotebooktalkposterstyle 控制着样式,可选值有darkgridwhitegriddarkwhitetickspalette 为预设调色板,可选值有deepmutedbrightpasteldarkcolorblindfont 用于设置字体,font_scale 用于设置字体大小,color_codes 使用颜色字母缩写表示颜色。

seaborn 绘图分为关联图、类别图、分布图、回归图、矩阵图、组合图六大类别。

seaborn API 分为 Figure-level 和 Axes-level 两种,前者适合于快速绘图,后者与 matplotlib 更接近,绘图更加灵活。

目录

  • 关联图
  • 类别图
  • 分布图
  • 回归图
  • 矩阵图

关联图

当对数据进行关联分析时,可能会用到 replot 绘制关系图,scatterplot 绘制多维度分散散点图,lineplot 绘制线性图。实际上,replotscatterplotlineplot 的结合版本。前一个是 Figure-level 接口,后两个是 Axes-level 接口。

以下使用的数据来源于 iris 数据集。

!wget -nc "https://labfile.oss.aliyuncs.com/courses/2616/seaborn-data.zip"
!unzip seaborn-data.zip -d ~/

replot 是 relation plot 的缩写,主要有散点图和条形图两种样式。在绘制图形时指定 xy 的特征。

sns.relplot(x="sepal_length", y="sepal_width", data=iris)

加入类别特征进行着色。

sns.relplot(x="sepal_length", y="sepal_width", hue="species", data=iris)

设置 style 参数还可以给不同类别设置不同形状。

sns.relplot(x="sepal_length", y="sepal_width", hue="species", style="species", data=iris)

kind 参数设置为 line 还可以绘制折线图,会自动给出 95% 的置信区间。

sns.relplot(x="sepal_length", y="petal_length", hue="species", style="species", kind="line", data=iris)

绘制折线图还可以使用 lineplot,绘制散点图还可以使用 scatterplot,效果相同。

sns.lineplot(x="sepal_length", y="petal_length",hue="species", style="species", data=iris)

类别图

在类别图中,catplot() 是 Figure-level 接口,它是 categorical plots 的缩写。

sns.catplot(x="sepal_length", y="species", data=iris)

设置 kind 参数为 swarm 可以防止数据重叠,更好地观测数据分布。

sns.catplot(x="sepal_length", y="species", kind="swarm", data=iris)

还可以将其设置为 box 表示箱线图,violin 表示小提琴图,boxex 表示增强箱线图,point 表示点线图。bar 表示条形图,count 表示计数图。

上述各式图形还可以用 stripplot()swarmplot()boxplot()violinplot()boxenplot()pointplot()barplot()countplot()实现。

分布图

分布图用于可视化变量的分布情况,一般分为单变量分布和二元变量分布。

displot() 查看单变量分布,默认情况下绘制直方图和拟合核密度估计图。

sns.distplot(iris["sepal_length"])

设置 kdeFalse 则不会绘制拟合核密度估计图,设置 histFalse 则不绘制直方图。

sns.distplot(iris["sepal_length"], kde=False)
sns.distplot(iris["sepal_length"], hist=False)

kdeplot() 专门用于绘制核密度估计图。

sns.kdeplot(iris["sepal_length"])

jointplot() 用于绘制二元变量分布图,它可以设置 kind 参数。

sns.jointplot(x="sepal_length", y="sepal_width", data=iris)
sns.jointplot(x="sepal_length", y="sepal_width", data=iris, kind="kde")
sns.jointplot(x="sepal_length", y="sepal_width", data=iris, kind="hex")
sns.jointplot(x="sepal_length", y="sepal_width", data=iris, kind="reg")

pairplot() 更为强大,它可以一次性地将数据集中特征两两对比图全部绘制出来,对角线上是单变量分布图,其它地方则是二元遍历分布图。

回归图

regeplot() 绘制回归图仅需指定自变量和因变量,它会自动完成线性回归拟合。

sns.regplot(x="sepal_length", y="sepal_width", data=iris)

lmplot() 同样是绘制回归图,但它支持引入第三维度进行对比,例如分类别。

sns.lmplot(x="sepal_length", y="sepal_width", hue="species", data=iris)

矩阵图

heatmap() 用于绘制热力图。

import numpy as np
sns.heatmap(np.random.rand(10, 10))

clustermap() 支持绘制层次聚类图。

iris.pop("species")
sns.clustermap(iris)

更详细的资料参阅官网。

python seaborn学习笔记相关推荐

  1. Python数据挖掘学习笔记】九.回归模型LinearRegression简单分析氧化物数据

    #2018-03-23 16:26:20 March Friday the 12 week, the 082 day SZ SSMR [Python数据挖掘学习笔记]九.回归模型LinearRegre ...

  2. python做直方图-python OpenCV学习笔记实现二维直方图

    本文介绍了python OpenCV学习笔记实现二维直方图,分享给大家,具体如下: 官方文档 – https://docs.opencv.org/3.4.0/dd/d0d/tutorial_py_2d ...

  3. python 正则学习笔记

    python 正则学习笔记 官方document #1.0 import re m=re.search('(?<=abc)def','cxabcdefgb')print(m.group(0))# ...

  4. Python数据结构学习笔记——链表:无序链表和有序链表

    目录 一.链表 二.无序链表 实现步骤分析 三.无序链表的Python实现代码 四.有序链表 实现步骤分析 五.有序链表的Python实现代码 结语 一.链表 链表中每一个元素都由为两部分构成:一是该 ...

  5. Python数据结构学习笔记——队列和双端队列

    目录 一.队列的定义 二.队列 实现步骤分析 三.队列的Python实现代码 四.队列的应用 六人传土豆游戏 五.双端队列的定义 六.双端队列 实现步骤分析 七.双端队列的Python实现代码 八.双 ...

  6. Python数据结构学习笔记——栈

    目录 一.栈的定义和特性 (一)栈的定义 (二)栈的反转特性 二.实现分析步骤 三.栈的Python实现代码 四.栈的应用 (一)匹配圆括号 (二)匹配符号 (三)模2除法(十进制转二进制) (四)进 ...

  7. Python基础学习笔记三

    Python基础学习笔记三 print和import print可以用,分割变量来输出 import copy import copy as co from copy import deepcopy ...

  8. python opencv 直方图均衡_详解python OpenCV学习笔记之直方图均衡化

    本文介绍了python OpenCV学习笔记之直方图均衡化,分享给大家,具体如下: 官方文档 – https://docs.opencv.org/3.4.0/d5/daf/tutorial_py_hi ...

  9. Python基础学习笔记之(二)

    Python基础学习笔记之(二) zouxy09@qq.com http://blog.csdn.net/zouxy09 六.包与模块 1.模块module Python中每一个.py脚本定义一个模块 ...

最新文章

  1. 苹果智能家居大招要来 两年一直没火真相解秘
  2. maven项目的依赖、继承管理
  3. POJ 2778 DNA Sequence (自动机DP+矩阵快速幂)
  4. anaconda3安装_Anaconda3软件与安装教程
  5. codeforces contest 1142
  6. Spring Boot返回前端Long型丢失精度
  7. 第70天:jQuery基本选择器(一)
  8. html站点如何命名,html页面的CSS、DIV命名规则
  9. Java 8 Friday:更多功能关系转换
  10. 最基础!MySQL基础查询SELECT
  11. 广东中国科学院计算机网络信息中心,中国科学院
  12. Java JSP JSTL
  13. 找不到“javax.servlet.annotation.WebServlet“解决方法
  14. 如何在Arduino上使用OV7670摄像头模块
  15. 23个机器学习最佳入门项目(附源代码)
  16. 20多岁的生活方式决定了你30岁的打开方式_演讲稿
  17. 显示器信号时有时无并无html,电脑开机显示器无信号、键盘鼠标不亮解决方法...
  18. 程序基石系列之C++多态的前提条件
  19. django+前端+数据库 week1
  20. rstudio检验多重共线性代码

热门文章

  1. 额外域控与主域控之间的数据同步
  2. C++ Perf性能调优+火焰图调优
  3. 创业公司股权分配较好方案推荐
  4. 微信开发者工具下载及调试
  5. 陶哲轩实分析 5.5 节习题试解
  6. ubuntu安装ActiveMQ
  7. linux--Repo的介绍与安装
  8. 春意盎然、万物复苏、朝气蓬勃~
  9. java response返回json_Response返回JSON数据到前台页面
  10. 如何用gitbook写书