python seaborn_Python数据分析之Seaborn(样式风格)
Seaborn简介
Seaborn是一种基于matplotlib的图形可视化python库。它提供了一种高度交互式界面,便于用户能够做出各种有吸引力的统计图表。Seaborn其实是在matplotlib的基础上进行了更高级的API封装,从而使得作图更加容易,在大多数情况下使用Seaborn就能做出很具有吸引力的图,而使用matplotlib就能制作具有更多特色的图。应该把Seaborn视为matplotlib的补充,而不是替代物。同时它能高度兼容numpy与pandas数据结构以及scipy与statsmodels等统计模式。掌握Seaborn能很大程度帮助我们更高效的观察数据与图表,并且更加深入了解它们。
其有如下特点:
- 基于matplotlib aesthetics绘图风格,增加了一些绘图模式
- 增加调色板功能,利用色彩丰富的图像揭示您数据中的模式
- 运用数据子集绘制与比较单变量和双变量分布的功能
- 运用聚类算法可视化矩阵数据
- 灵活运用处理时间序列数据
- 利用网格建立复杂图像集
Seaborn样式
matplotlib与seaborn绘图比较
import seaborn as snsimport numpy as npimport matplotlib as mplimport matplotlib.pyplot as plt%matplotlib inline
def sinplot(flip=1): x = np.linspace(0, 14, 100) for i in range(1, 7): plt.plot(x, np.sin(x + i * .5) * (7 - i) * flip)
sinplot() #采用matplotlib绘制
sns.set() #采用seaborn默认设置sinplot()
Seaborn 5种主题风格
- darkgrid
- whitegrid
- dark
- white
- ticks
sns.set_style("darkgrid")sinplot()
sns.set_style("whitegrid")sinplot()
sns.set_style("dark")sinplot()
sns.set_style("white")sinplot()
sns.set_style("ticks")sinplot()
用despine()移除轴线
样式white和ticks都可以通过去除上方和右方不必要的轴线来得到改善. 而这些是不可能在matplotlib里设置参数做到的,但是你可以调用seaborn的函数despine()来去除轴线:
sns.set_style("ticks")sinplot()sns.despine() # 去除上面与右面轴线
有些布局也可以通过调整轴线距数据的偏移来改善,这也能在despine()里完成.当ticks不能覆盖轴线的整个范围时,trim参数可以限制显示的轴线的范围.
data = np.random.normal(size=(20, 6)) + np.arange(6) / 2 # (20, 6) 二维数据f, ax = plt.subplots()sns.violinplot(data) # 琴形图sns.despine(offset=10,trim=True)
你也可能通过设置另外的参数来控制移除哪条轴线:
sns.set_style("whitegrid")sns.boxplot(data=data, palette="deep") #箱型图sns.despine(left=True) #去除左边的轴线
临时设置图表样式
尽管来回切换样式是很简单的,但是你也可以在with语句里用axes_style()函数来临时设置控制布局的参数.这也允许你用不同的风格来制作图表,这是一种常见的编程模式,使得控制样式和风格能够多变。
with sns.axes_style("darkgrid"): plt.subplot(211) sinplot()plt.subplot(212)sinplot(-1)
重载seaborn样式的元素
如果你想要自定义seaborn的样式,你可以用词典(dictionary)将一系列控制参数赋值给axes_style()函数和set_style()函数的rc参数里. 注意你只能通过这种方式重载样式定义的部分.(但是,更高级的set()函数可以处理包含任意matplotlib参数的词典)
如果你想要知道都包含了哪些参数,你可以调用没有参数的函数,它会返回当前设置:
sns.axes_style()
{'axes.axisbelow': True, 'axes.edgecolor': '.8', 'axes.facecolor': 'white', 'axes.grid': True, 'axes.labelcolor': '.15', 'axes.linewidth': 1.0, 'figure.facecolor': 'white', 'font.family': ['sans-serif'], 'font.sans-serif': ['Arial', 'DejaVu Sans', 'Liberation Sans', 'Bitstream Vera Sans', 'sans-serif'], 'grid.color': '.8', 'grid.linestyle': '-', 'image.cmap': 'rocket', 'legend.frameon': False, 'legend.numpoints': 1, 'legend.scatterpoints': 1, 'lines.solid_capstyle': 'round', 'text.color': '.15', 'xtick.color': '.15', 'xtick.direction': 'out', 'xtick.major.size': 0.0, 'xtick.minor.size': 0.0, 'ytick.color': '.15', 'ytick.direction': 'out', 'ytick.major.size': 0.0, 'ytick.minor.size': 0.0}
然后你可以设置这些参数的不同版本:
sns.set_style("darkgrid", {"axes.facecolor": ".9"})sinplot()
使用plotting_context()和set_context()设置布局元素的规模
布局元素的规模被独立的参数集合控制,这能让你使用相同的代码得到不同大小的规模合适的布局
首先让我们重新调用set()函数得到缺省设置:
sns.set()
有4种预设好的上下文(context),按相对大小排序分别是:paper, notebook, talk,和poster.缺省的规模是notebook,上述的所有图表都是它.
sns.set_context("paper")plt.figure(figsize=(8, 6))sinplot()
sns.set_context("talk")plt.figure(figsize=(8, 6))sinplot()
sns.set_context("poster")plt.figure(figsize=(8, 6))sinplot()
大部分你现在所稽首的样式函数都应该被转换成上下文函数.
你可以调用set_context(),将上下文的名字当作一个参数传入,然后你就可以通过提供一个写有各项设置值的词典重载上下文的参数。
在修改上下文时,你也可以单独修改字体大小。(更高级的set()里也可以这么做)
sns.set_context("notebook", font_scale=1.5, rc={"lines.linewidth": 2.5})sinplot()
参考
[Style functions]http://seaborn.pydata.org/tutorial/aesthetics.html#aesthetics-tutorial
[Color palettes]http://seaborn.pydata.org/tutorial/color_palettes.html#palette-tutorial
[Distribution plots]http://seaborn.pydata.org/tutorial/distributions.html#distribution-tutorial
[Categorical plots]http://seaborn.pydata.org/tutorial/categorical.html#categorical-tutorial
[Regression plots]http://seaborn.pydata.org/tutorial/regression.html#regression-tutorial
[Axis grid objects]http://seaborn.pydata.org/tutorial/axis_grids.html#grid-tutorial
[10分钟python图表绘制]https://zhuanlan.zhihu.com/p/24464836
python seaborn_Python数据分析之Seaborn(样式风格)相关推荐
- python seaborn_Python数据分析之Seaborn(回归分析绘图)
Seaborn回归分析绘图 %matplotlib inlineimport numpy as npimport pandas as pdimport matplotlib as mplimpor ...
- FacetGrid与调色盘-Seaborn样式风格设置-调色盘设置
FacetGrid与调色盘 FacetGrid结构图 之前我们在绘图的时候,学了relplot.catplot.lmplot等,这些函数可以通过col.row等在一个Figure中绘制多个图.这些函数 ...
- python中seaborn是什么_Python数据分析之seaborn常用方法
Python数据分析之seaborn常用方法 %matplotlib inline import matplotlib as mpl from matplotlib import pyplot as ...
- 《利用python进行数据分析》读书笔记
<利用python进行数据分析>是一本利用python的Numpy.Pandas.Matplotlib库进行数据分析的基础介绍,非常适合初学者. 重要的python库 NumPy http ...
- Python 大数据分析疫情:如何实现实时数据爬取及 Matplotlib 可视化?
作者 | 杨秀璋 来源 | CSDN博客专家Eastmount 责编 | 夕颜 思来想去,虽然很忙,但还是挤时间针对这次肺炎疫情写个Python大数据分析系列博客,包括网络爬虫.可视化分析.GIS地图 ...
- 整理总结:利用Python进行数据分析及思维导图
参考资料:机械工业出版社的<利用Python进行数据分析>(思维导图在最后面) 本篇目录 参考资料:机械工业出版社的<利用Python进行数据分析>(思维导图在最后面) 第一章 ...
- python做面板数据_用Python做数据分析的基本步骤(持续修改更新)
一.环境搭建 数据分析最常见的环境是Anaconda+Jupyter notebook 二.导入包 2.1数据处理包导入 import numpy as np import pandas as pd ...
- 利用Python进行数据分析(学习笔记)
第壹章 准备工作 1.1 本书内容 1.1.1 什么类型的数据 1.2 为何利用Python进行数据分析 1.2.1 Python作为胶水 1.2.2 解决"双语言"难题 1.2. ...
- python可视化数据分析plotly-Python数据分析:基于Plotly的动态可视化绘图
随着信息技术的发展和硬件设备成本的降低,当今的互联网存在海量的数据,想要快速从这些数据中获取更多有效的信息,数据可视化是重要的一环.对Python语言来说,比较传统的数据可视化模块是Matplotli ...
最新文章
- element tree 点击文字都也可以勾选_任何时候都能用得到的CAD实用技巧!掌握它,分分钟提高工作效率...
- html——黑体、斜体、下划线及删除线
- 4、MySQL冷备份所需物理文件
- Java调用webservice.asmx接口.
- 怎样实现登录用户管理_如何编写程序实现图书管理系统里面的用户管理功能
- 波纹扩散_C4D_动画amp;RS波纹扩散效果J_014
- shiro学习(10):servelet实现权限认证一
- C++实现树的基本操作,界面友好,操作方便,运行流畅,运用模板
- Atitit. Dwr 抛出异常error解决方案
- 微信小程序实例源码大全下载
- wordpress炫酷主题Salient最新版13.0.5 汉化版免费下载
- Archlinux下firefox无法使用支付宝控件(aliedit)输入密码/进行支付的解决办法
- selenium小白学习笔记(7) - 第二个脚本(126邮箱登录为例,包含xpath定位、frame切换)
- 转载Flickr 网站架构分析
- python unrar问题_python利用unrar实现rar文件解压缩
- 04、switch-case分支结构、循环结构
- 【郝斌 C语言 笔记】自增
- (二)【Matlab】Matlab矩阵处理
- 【FPGA】8B/10B编码--转自wiki百科
- linux buffer io error,Linux Buffer I/O error on device dm-4, logical block,dm-4logical
热门文章
- yii2 smarty php,Yii2-smarty的一些小坑
- 带sex的net域名_中华网--科技频道
- matlab jar包,Matlab 將m文件打包成jar包 (二)使用jar包
- apt编译java_自动生成代码工具--APT
- vscode remote ssh_win10 下安装Vscode
- 无源波分和彩光模块_【光电通信】无源波分在 5G 场景中 的应用分析
- 未能找到元数据文件_Flink 源码:Checkpoint 元数据详解
- java canvas 画圆_java – 如何在Android中通过canvas绘制圆?
- 二维数组 赋值_数组,及二维数组
- SQL BASELINE修改固定执行计划