seaborn教程1——风格选择
原文链接:https://segmentfault.com/a/1190000014915873
Seaborn学习大纲
seaborn
的学习内容主要包含以下几个部分:
风格管理
- 绘图风格设置
颜色风格设置
绘图方法
- 数据集的分布可视化
- 分类数据可视化
- 线性关系可视化
结构网格
- 数据识别网格绘图
本次将主要介绍颜色调控
的使用。
0、seaborn介绍:
Seaborn其实是在matplotlib的基础上进行了更高级的API封装,从而使得作图更加容易,在大多数情况下使用seaborn就能做出很具有吸引力的图,而使用matplotlib就能制作具有更多特色的图。应该把Seaborn视为matplotlib的补充,而不是替代物。
安装方法:
pip install seaborn
1、管理图表的艺术
画一个吸引人注意的图表相当重要。当你探索一个数据集,需要画图表,图表看起来令人愉悦是件很高兴的事。在与你的观众交流观点时,可视化同样重要,同时,也很有必要去让图表吸引注意力和印入脑海里。Matplotlib自动化程度非常高,但是,掌握如何设置系统以便获得一个吸引人的图是相当困难的事。为了控制matplotlib图表的外观,Seaborn模块自带许多定制的主题和高级的接口。
1.1 让我们定义一个简单的函数来绘制一些偏移正弦波,这将帮助我们看到可以调整的不同样式参数。使用matplotlib默认值时的图:
1.2 转换成Seaborn模块,再次绘图
#转换成Seaborn模块,只需要引入seaborn模块。
import seaborn as sns
sns.set()#切换到seaborn默认值
sinplot()
seaborn默认浅灰色背景与白色网络线的灵感来源于matplotlib,却比matplotlib的颜色更多柔和。我们发现,网络线对于传播信息很有用,几乎在所有情况下,人们喜欢图甚于表。默认情况下白灰网格的形式可以避免过于刺眼。在多面作图的情况下,网络形式显得相当的有利,提供了一种作图结构,这对模块中的一些复杂工具非常重要。
2、seaborn的两类函数
Seaborn
将 matplotlib
的参数划分为两个独立的组合。第一组是设置绘图的外观风格的,第二组主要将绘图的各种元素按比例缩放的,以至可以嵌入到不同的背景环境中。
操控这些参数的接口主要有两对方法:
- 控制风格:
axes_style()
,set_style()
- 缩放绘图:
plotting_context()
,set_context()
每对方法中的第一个方法(axes_style()
, plotting_context()
)会返回一组字典参数,而第二个方法(set_style()
, set_context()
)会设置matplotlib的默认参数。
2.1 控制风格 axes_style()
and set_style()
2.1.1 设置图表主题set_style()
有五种预设的seaborn主题:暗网格(darkgrid),白网格(whitegrid),全黑(dark),全白(white),全刻度(ticks)。以适应不同人不同的爱好。
默认主题是暗网格,网格可以帮助我们定量的查找数据,并且灰色背景上的白色网格线可以防止网格线和数据线冲突。
白网格(WhiteGrid)主题也是类似,但它更适合具有大量数据元素的绘图:
对于许多绘图(尤其是像talks这样的设置(especially for settings like talks),您主要希望使用图形来提供数据中模式的印象),网格的必要性就降低了,此时可以使用全黑或全白风格
sns.set_style("dark") #全黑风格
sinplot()
sns.set_style("white") # 全白
sinplot()
有时你需要给出一点额外的图表结构信息,此时全刻度模式就派上用场了。
sns.set_style("ticks") #全刻度
sinplot()
2.1.2 去除轴脊柱
全白(white)和全刻度(tick)都可以从去除不必要的上边框和右边框中获益。可以调用seaborn函数destine()来删除它们:
sinplot()
sns.despine()
一些图表获益于限制数据脊柱,这也可以调用destine()来完成。当刻度没有完全覆盖整个轴的范围时,trim
参数可以用来限制已有脊柱的范围。
f, ax = plt.subplots()
sns.violinplot(data=data)
sns.despine(offset=10, trim=True);
你也可以通过despine()
控制哪个脊柱将被移除。
sns.set_style("whitegrid")
sns.boxplot(data=data, palette="deep")
sns.despine(left=True)
2.1.3 临时设置绘图风格
虽然来回切换风格很容易,但是你也可以在一个with
语句中使用axes_style()
方法来临时的设置绘图参数。这也允许你用不同风格的轴来绘图:
with sns.axes_style("darkgrid"):
plt.subplot(211)
sinplot()
plt.subplot(212)
sinplot(-1)
2.1.4 覆盖seaborn风格元素
如果你想定制化seaborn
风格,你可以将一个字典参数传递给axes_style()
和set_style()
的参数rc
。而且你只能通过这个方法来覆盖风格定义中的部分参数。
如果你想要看看这些参数都是些什么,可以调用这个方法,且无参数,这将会返回下面的设置:
然后你可以设置这些参数的不同版本了
sns.set_style("darkgrid", {"axes.facecolor": ".9"})
sinplot()
2.2 缩放绘图:plotting_context()
, set_context()
有一套的参数可以控制绘图元素的比例。
首先,让我们通过set()
重置默认的参数:
sns.set()
有四个预置的环境,按大小从小到大排列分别为:paper, notebook, talk, poster。其中,notebook是默认的。
sns.set_context("paper")
sinplot()
sns.set_context("talk")
sinplot()
sns.set_context("poster")
sinplot()
你可以通过使用这些名字中的一个调用set_context()
来设置参数,并且你可以通过提供一个字典参数值来覆盖参数。当改变环境时,你也可以独立的去缩放字体元素的大小。
sns.set_context("notebook", font_scale=1.5, rc={"lines.linewidth": 2.5})
sinplot()
同样的,你可以通过嵌入with
语句临时的控制绘图的比例
seaborn教程1——风格选择的更多相关文章
- Python图表数据可视化Seaborn:1. 风格| 分布数据可视化-直方图| 密度图| 散点图
conda install seaborn 是安装到jupyter那个环境的 1. 整体风格设置 对图表整体颜色.比例等进行风格设置,包括颜色色板等调用系统风格进行数据可视化 set() / se ...
- SpringBoot 系列教程自动配置选择生效
191214-SpringBoot 系列教程自动配置选择生效 写了这么久的 Spring 系列博文,发现了一个问题,之前所有的文章都是围绕的让一个东西生效:那么有没有反其道而行之的呢? 我们知道可以通 ...
- seaborn教程4——分类数据可视化
https://segmentfault.com/a/1190000015310299 Seaborn学习大纲 seaborn的学习内容主要包含以下几个部分: 风格管理 绘图风格设置 颜色风格设置 绘 ...
- seaborn教程2——颜色调控
原文转载 https://segmentfault.com/a/1190000014966210 Seaborn学习大纲 seaborn的学习内容主要包含以下几个部分: 风格管理 绘图风格设置 颜色风 ...
- ActiveReports 报表控件官方中文入门教程 (3)-如何选择页面报表和区域报表
本篇文章将介绍区域报表和页面报表的常见使用场景.区别和选择报表类型的一些建议,两种报表的模板设计.数据源(设计时和运行时)设置.和浏览报表的区别. ActiveReports 报表控件官方中文入门教程 ...
- seaborn教程3——数据集的分布可视化
原文转载:https://segmentfault.com/a/1190000015006667 Seaborn学习大纲 seaborn的学习内容主要包含以下几个部分: 风格管理 绘图风格设置 颜色风 ...
- 160921、React入门教程第一课--从零开始构建项目
工欲善其事必先利其器,现在的node环境下,有太多好用的工具能够帮助我们更好的开发和维护管理项目. 我本人不建议什么功能都自己写,我比较喜欢代码复用.只要能找到npm包来实现的功能,坚决不自己敲代码. ...
- Python数据可视化matplotlib和seaborn
Python在数据科学中的地位,不仅仅是因为numpy, scipy, pandas, scikit-learn这些高效易用.接口统一的科学计算包,其强大的数据可视化工具也是重要组成部分.在Pytho ...
- [Sass]不同样式风格的输出方法
[Sass]不同样式风格的输出方法 众所周知,每个人编写的 CSS 样式风格都不一样,有的喜欢将所有样式代码都写在同一行,而有的喜欢将样式分行书写.在 Sass 中编译出来的样式风格也可以按不同的样式 ...
随机推荐
- Ubuntu Anaconda3 环境下安装caffe
安装Python环境 本人环境为Anaconda3 ,可参照 https://blog.csdn.net/ctwy291314/article/details/86571198 完成安装Python2 ...
- qemu-kvm使用
创建镜像qemu-img create -f qcow2 test-vm.qcow2 10g 修改镜像大小qemu-img resize test-vm.qcow2 +10G 安装系统 qem ...
- 升级docker至最新版本
升级docker至最新版本 1.查找主机上关于Docker的软件包 [root@pre1 ~]# rpm -qa | grep docker docker-1.13.1-88.git07f3374.e ...
- C# 实现实体类和Xml转换
一.实体类转换成XML 将实体类转换成XML需要使用XmlSerializer类的Serialize方法,将实体类序列化 public static string XmlSerialize<T& ...
- Codeforces Round #421 (Div. 2) - B
题目链接:http://codeforces.com/contest/820/problem/B 题意:给定一个正n边形,然后让你选择3个不同的顶点,使得这3个顶点形成的角度尽可能的接近a. 思路:首 ...
- [Luogu2600]合并神犇(dp,贪心)
[Luogu2600]合并神犇 题目背景 loidc来到了NOI的赛场上,他在那里看到了好多神犇. 题目描述 神犇们现在正排成一排在刷题.每个神犇都有一个能力值p[i].loidc认为坐在附近的金牌爷 ...
- Wannafly挑战赛27 C蓝魔法师
链接Wannafly挑战赛27 C蓝魔法师 给出一棵树,求有多少种删边方案,使得删后的图每个连通块大小小于等于\(k\),\(n,k\leq 2*10^3\) 假设我们正在考虑\(i\)这个子树,那么 ...
- flask之注册功能
一:注册功能 1:前端准备表单 # 前端代码 <!DOCTYPE html> <html lang="en"> <head> <meta ...
- python学习笔记(九)内置函数
print(all([1,2,3,4]))#判断可迭代的对象里面的值是否都为真 True print(any([0,1,2,3,4]))#判断可迭代的对象里面的值是否有一个为真 True print( ...
- ueditor编辑器中从word中复制带图片的信息的操作演示
我司需要做一个需求,就是使用富文本编辑器时,不要以上传附件的形式上传图片,而是以复制粘贴的形式上传图片. 在网上找了一下,有一个插件支持这个功能. WordPaster 安装方式如下: 直接使用Wor ...