作者: 未禾

数据猿官网 | www.datayuan.cn

今日头条丨一点资讯丨腾讯丨搜狐丨网易丨凤凰丨阿里UC大鱼丨新浪微博丨新浪看点丨百度百家丨博客中国丨趣头条丨腾讯云·云+社区

一直苦于没有系统学习seanborn的教程,似乎市面上也还没有完整的官方文档的学习资料。终于下决心用几天的时间通读下官方文档,并把记录下来。

基于官方0.71版本,所有代码和图片皆已验证,与官方结论不符的地方会进行标注。如果有翻译失当或理解有误的地方,敬请随意指正!(http://seaborn.pydata.org/tutorial.html)

一个引人入胜的图表非常重要,赏心悦目的图形不但能让数据探索中一些重要的细节更容易被挖掘,也能更有利于在与观众交流分析结果的过程中吸引观众的注意力并使观众们更容易记住结论。

Matplotlib无疑是高度可定制的,但快速实施出吸引人的细节就变得有些复杂。Seaborn作为一个带着定制主题和高级界面控制的Matplotlib扩展包,能让绘图变得更轻松,本部分主要介绍seaborn是如何对matplotlib输出的外观进行控制的。

定义一个含偏移的正弦图像,来比较传统的matplotlib和seaborn的不同:

使用matplotlib默认设置的图形效果:

seaborn默认的灰色网格底色灵感来源于matplotlib却更加柔和。大多数情况下,图应优于表。seaborn的默认灰色网格底色避免了刺目的干扰,对于多个方面的图形尤其有用,是一些更复杂的工具的核心。

Seaborn将matplotlib参数分成两个独立的组。第一组设定了美学风格,第二组则是不同的度量元素,这样就可以很容易地添加到代码当中了。

操作这些参数的接口是两对函数。为了控制样式,使用axesstyle()和setstyle()函数。为了扩展绘图,请使用plotting_context()和set_context()函数。在这两种情况下,第一个函数返回一个参数字典,第二个函数则设置matplotlib默认属性。

样式控制:axes_style() and set_style()

有5个seaborn的主题,适用于不同的应用和人群偏好:

darkgrid 黑色网格(默认)

whitegrid 白色网格

dark 黑色背景

white 白色背景

ticks 应该是四周都有刻度线的白背景?

网格能够帮助我们查找图表中的定量信息,而灰色网格主题中的白线能避免影响数据的表现,白色网格主题则类似的,当然更适合表达“重数据元素”(heavy data elements不理解)

对于许多场景,(特别是对于像对话这样的设置,您主要想使用图形来提供数据模式的印象),网格就不那么必要了。

有时你可能想要给情节增加一点额外的结构,这就是ticks参数的用途:

特别的可以通过sns.axes_style(style=None, rc=None) 返回一个sns.set_style()可传的参数的字典。

通过类似sns.set_style("ticks", {"xtick.major.size": 8, "ytick.major.size": 8})的方式写入更具体的配置样式。

关于sns.axes_style()下面会有说明和运行结果。

用despine()进行边框控制

white和ticks参数的样式,都可以删除上方和右方坐标轴上不需要的边框,这在matplotlib中是无法通过参数实现的,却可以在seaborn中通过despine()函数轻松移除他们。

一些图的边框可以通过数据移位,当然调用despine()也能做同样的事。当边框没有覆盖整个数据轴的范围的时候,trim参数会限制留存的边框范围。

你也可以通过往despine()中添加参数去控制边框。

despine(fig=None, ax=None, top=True, right=True, left=False, bottom=False, offset=None, trim=False)

从plot()函数中移除顶部或右边的边框。

临时设定图形样式

虽然来回切换非常容易,但sns也允许用with语句中套用axes_style()达到临时设置参数的效果(仅对with块内的绘图函数起作用)。这也允许创建不同风格的坐标轴。

seaborn样式中最重要的元素

如果您想要定制seanborn的样式,可以将参数字典传递给axes_style()和set_style()的rc参数。注意,只能通过该方法覆盖样式定义的一部分参数。(然而,更高层次的set()函数接受任何matplotlib参数的字典)。

如果您想要查看包含哪些参数,您可以只调用该函数而不带参数,这将返回当前设置的字典:

或许,你可以试试不同种类的参数效果。

通过 plotting_context() 和 set_context() 调整绘图元素

另一组参数控制绘图元素的规模,这应该让您使用相同的代码来制作适合在较大或较小的情节适当的场景中使用的情节。

首先,可以通过sns.set()重置参数。

四种预设,按相对尺寸的顺序(线条越来越粗),分别是paper,notebook, talk, and poster。notebook的样式是默认的,上面的绘图都是使用默认的notebook预设。

通过观察各种样式的结果,你应当可以了解context函数。

类似的,还可以使用其中一个名称来调用set_context()来设置参数,您可以通过提供参数值的字典来覆盖参数。

通过更改context还可以独立地扩展字体元素的大小。(这个选项也可以通过顶级set()函数获得)。

类似地(尽管它可能用处不大),也可以使用with嵌套语句进行临时的设置。

样式和上下文都可以用set()函数快速地进行配置。这个函数还设置了默认的颜色选项,在下一节将详细介绍这一功能。

本文作者 未禾,首发于作者知乎,https://zhuanlan.zhihu.com/p/27435863,已获首发平台授权原创形式发布。

数据猿读者亲启:

名企&大佬专访精选

向下滑动启阅

以下文字均可点击阅读原文

跨国外企:

谷歌大中华及韩国区数据洞察与解决方案总经理郭志明丨 IBM中国区开发中心总经理吉燕勇丨微软中国CTO官韦青丨前微软中国CTO黎江丨VMware中国区研发中心总经理任道远

中国名企:

联想集团副总裁田日辉丨首汽租车COO 魏东

阿里巴巴数据经济研究中心秘书长潘永花

搜狗大数据研究院院长李刚丨易观CTO郭炜

前上海证券交易所副总裁兼CTO白硕丨携程商旅亚太区CMO 邱斐丨艾瑞集团CTO郝欣诚丨泰康集团大数据部总经理周雄志丨上海链家研究院院长陈泽帅丨蓝色光标首席数据科学家王炼

知名学者:

北大新媒体研究院副院长刘德寰丨中科院基因研究所方向东

创业明星:

地平线机器人创始人兼CEO余凯丨天工科仪董事长王世金丨ZRobot CEO乔杨丨天眼查创始人兼CEO柳超丨第四范式联合创始人兼首席架构师胡时伟丨天云大数据CEO雷涛丨Kyligence联合创始人兼CEO韩卿丨数之联创始人兼CEO周涛丨明略数据董事长吴明辉丨91征信创始人兼CEO 薛本川丨智铀科技创始人、CEO及首席科学家夏粉丨易宝支付联合创始人兼总裁余晨丨海云数据创始人兼CEO冯一村丨星环科技COO佘晖丨碳云智能联合创始人兼首席科学家李英睿

知名投资人:

前IDG创始合伙人、火山石资本创始人章苏阳

华创资本合伙人熊伟铭丨六禾创投总裁王烨

信天创投合伙人蒋宇捷丨青域基金执行总裁牟颖

蓝驰创投合伙人朱天宇

——数据猿专访部

(可上下滑动启阅)

▲向上滑动

采访/报道/投稿

yaphet.zhang@datayuan.cn

商务合作

18600591561(微信)

长按右方二维码

关注我们ˉ►

Python Seaborn (1) 艺术化的图表控制相关推荐

  1. Py之Matplotlib:python包之Matplotlib库图表绘制经验总结(中英文字体修改、横坐标文字进行横/纵向显示、控制坐标轴范围等)之详细攻略

    Py之Matplotlib:python包之Matplotlib库图表绘制经验总结(中英文字体修改.横坐标文字进行横/纵向显示.控制坐标轴范围等)之详细攻略 目录 1.Matplotlib库图表绘制包 ...

  2. Python Seaborn教程

    Python Seaborn教程 (Python Seaborn Tutorial) Seaborn is a library for making statistical infographics ...

  3. 中boxplot函数的参数设置_如何在Python中生成图形和图表

    在本章中,我们将学习如何在Python中生成图形和图表,同时将使用函数和面向对象的方法来可视化数据. Python中常用的一些可视化数据包括以下几种. Matplotlib. Seaborn. ggp ...

  4. 使用Python Seaborn和Pandas进行数据可视化

    Hey, folks! Today we will be unveiling a very interesting module of Python - Seaborn Module and will ...

  5. python 图表_Python入门学习系列——使用Python调用Web API实现图表统计

    使用Python调用Web API实现图表统计 Web API:Web应用编程接口,用于URL请求特定信息的程序交互,请求的数据大多以非常易于处理的格式返回,比如JSON或CSV等. 本文将使用Pyt ...

  6. Python seaborn可视化:组合多个seaborn可视化结果并使得组合结果图像共享X轴、使用matplotlib的subplots子图函数的gridspec_kw参数指定子图的相对大小或者比率

    Python seaborn可视化:组合多个seaborn可视化结果并使得组合结果图像共享X轴.使用matplotlib的subplots子图函数的gridspec_kw参数指定子图的相对大小或者比率 ...

  7. Py之matplotlib:python包之matplotlib库图表绘制包的简介、安装、使用方法(matplotlib颜色大全)详细攻略

    Py之matplotlib:python包之matplotlib库图表绘制包的简介.安装.使用方法(matplotlib颜色大全)详细攻略 目录 matplotlib简介 matplotlib安装 m ...

  8. python seaborn heatmap可视化相关性矩阵

    python seaborn heatmap可视化相关性矩阵 方法 方法 import pandas as pd import numpy as np import seaborn as sns df ...

  9. 46_Pandas,Python,Seaborn热图的生成

    46_Pandas,Python,Seaborn热图的生成 Python 的可视化库 seaborn 可以轻松创建可视化 2D 数据的热图. 使用 seaborn.heatmap() 函数. Pand ...

最新文章

  1. linux 瞬间文件数没了,关于linux:如何快速汇总文件中的所有数字?
  2. 奶牛异或(01字典树)
  3. shell编程中for/while/util/case/select/break/continue
  4. LaTex 版面设计
  5. windows更新不支持的硬件_Win10五月大更新细节,解决高CPU占用,不支持AMD
  6. EFCore Lazy Loading + Inheritance = 干净的数据表 (二)
  7. nssl1191,P2700-逐个击破(平津战役)【并查集】
  8. maven中net.sf.json报错的解决方法
  9. 项目疑难杂症记录(三):EditText获取不到焦点了?
  10. Win8 DirectX 开发问题总结(一)
  11. Vue.创建工程卡住
  12. 专家:苹果有能力打造Mac芯片但不会去做
  13. 台式计算机调亮度,台式电脑显示器屏幕亮度怎么调节?
  14. LINUX udhcpc命令
  15. GCF(3)---GCF简介
  16. linux fat get entry,操作系统--主引导程序控制权的转移
  17. 每日一问 --什么是正弦信号?正弦信号有哪些特性?
  18. c语言的32位指针加1是多少,c语言中,指针加1的情况.指针变量详细介绍
  19. 添加引用提示:未能找到引用的组件“XXX”。未能加载类型库。加载类型库/DLL 时出错。...
  20. 阿里云-印刷文字识别-营业执照识别

热门文章

  1. 计算机专业横向发展职业群,作为物联网什么是横向发展职业群
  2. 分众养虎梯影们,楼宇广告没有护城河
  3. SpringBoot结合redis解决PV、UV亿级流量
  4. 用数字 5,5,5,1 ,进行四则运算,每个数字当且仅当用一次,要求运算结果值为 24
  5. Java基础(六)——多线程的基本使用与原理
  6. Linux下面如何运行.sh文件?
  7. easyui Grid 的列合计
  8. H5互动小游戏如何提升用户留存
  9. 飞控地面站MissionPlanner界面修改------MainV2界面添加控件并动态刷新数据
  10. 华为云大数据BI 解决方案的超高性价比