python seaborn学习笔记
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
控制画的大小,可选值由大到小有 paper
、 notebook
、talk
、poster
。style
控制着样式,可选值有darkgrid
、whitegrid
、dark
、white
、ticks
。palette
为预设调色板,可选值有deep
、muted
、bright
、pastel
、dark
、colorblind
。font
用于设置字体,font_scale
用于设置字体大小,color_codes
使用颜色字母缩写表示颜色。
seaborn
绘图分为关联图、类别图、分布图、回归图、矩阵图、组合图六大类别。
seaborn
API 分为 Figure-level 和 Axes-level 两种,前者适合于快速绘图,后者与 matplotlib
更接近,绘图更加灵活。
目录
- 关联图
- 类别图
- 分布图
- 回归图
- 矩阵图
关联图
当对数据进行关联分析时,可能会用到 replot
绘制关系图,scatterplot
绘制多维度分散散点图,lineplot
绘制线性图。实际上,replot
是 scatterplot
和 lineplot
的结合版本。前一个是 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 的缩写,主要有散点图和条形图两种样式。在绘制图形时指定 x
和 y
的特征。
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"])
设置 kde
为 False
则不会绘制拟合核密度估计图,设置 hist
为 False
则不绘制直方图。
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学习笔记相关推荐
- Python数据挖掘学习笔记】九.回归模型LinearRegression简单分析氧化物数据
#2018-03-23 16:26:20 March Friday the 12 week, the 082 day SZ SSMR [Python数据挖掘学习笔记]九.回归模型LinearRegre ...
- python做直方图-python OpenCV学习笔记实现二维直方图
本文介绍了python OpenCV学习笔记实现二维直方图,分享给大家,具体如下: 官方文档 – https://docs.opencv.org/3.4.0/dd/d0d/tutorial_py_2d ...
- python 正则学习笔记
python 正则学习笔记 官方document #1.0 import re m=re.search('(?<=abc)def','cxabcdefgb')print(m.group(0))# ...
- Python数据结构学习笔记——链表:无序链表和有序链表
目录 一.链表 二.无序链表 实现步骤分析 三.无序链表的Python实现代码 四.有序链表 实现步骤分析 五.有序链表的Python实现代码 结语 一.链表 链表中每一个元素都由为两部分构成:一是该 ...
- Python数据结构学习笔记——队列和双端队列
目录 一.队列的定义 二.队列 实现步骤分析 三.队列的Python实现代码 四.队列的应用 六人传土豆游戏 五.双端队列的定义 六.双端队列 实现步骤分析 七.双端队列的Python实现代码 八.双 ...
- Python数据结构学习笔记——栈
目录 一.栈的定义和特性 (一)栈的定义 (二)栈的反转特性 二.实现分析步骤 三.栈的Python实现代码 四.栈的应用 (一)匹配圆括号 (二)匹配符号 (三)模2除法(十进制转二进制) (四)进 ...
- Python基础学习笔记三
Python基础学习笔记三 print和import print可以用,分割变量来输出 import copy import copy as co from copy import deepcopy ...
- python opencv 直方图均衡_详解python OpenCV学习笔记之直方图均衡化
本文介绍了python OpenCV学习笔记之直方图均衡化,分享给大家,具体如下: 官方文档 – https://docs.opencv.org/3.4.0/d5/daf/tutorial_py_hi ...
- Python基础学习笔记之(二)
Python基础学习笔记之(二) zouxy09@qq.com http://blog.csdn.net/zouxy09 六.包与模块 1.模块module Python中每一个.py脚本定义一个模块 ...
最新文章
- 苹果智能家居大招要来 两年一直没火真相解秘
- maven项目的依赖、继承管理
- POJ 2778 DNA Sequence (自动机DP+矩阵快速幂)
- anaconda3安装_Anaconda3软件与安装教程
- codeforces contest 1142
- Spring Boot返回前端Long型丢失精度
- 第70天:jQuery基本选择器(一)
- html站点如何命名,html页面的CSS、DIV命名规则
- Java 8 Friday:更多功能关系转换
- 最基础!MySQL基础查询SELECT
- 广东中国科学院计算机网络信息中心,中国科学院
- Java JSP JSTL
- 找不到“javax.servlet.annotation.WebServlet“解决方法
- 如何在Arduino上使用OV7670摄像头模块
- 23个机器学习最佳入门项目(附源代码)
- 20多岁的生活方式决定了你30岁的打开方式_演讲稿
- 显示器信号时有时无并无html,电脑开机显示器无信号、键盘鼠标不亮解决方法...
- 程序基石系列之C++多态的前提条件
- django+前端+数据库 week1
- rstudio检验多重共线性代码