python数据分析与可视化——利用Seaborn进行绘图

黎明之道 等级 375 0 0

利用Seaborn进行绘图

下面例子中所用数据下载地址——>iris.csv

Matplotlib绘图基本模仿MATLAB绘图库,其绘图风格和MATLAB类似。由于MATLAB绘图风格偏古典,因此,Python开源社区开发了Seaborn绘图模块,对Matplotlib进行封装,绘图效果更符合现代人的审美。
Seaborn属于Matplotlib的一个高级接口,使得作图更加容易。在多数情况下使用Seaborn能做出很具吸引力的图,而使用Matplotlib可以制作具有更多特色的图。应该把Seaborn视为iris.csvMatplotlib的补充,而不是替代物。
使用Seaborn时,使用的导入惯例为:
import seaborn as sns

风格设置用以设置绘图的背景色、风格、字型、字体等。
Seaborn通过set函数实现风格设置。
seaborn.set(context=‘notebook’, style=‘darkgrid’, palette=‘deep’, font=‘sans-serif’, font_scale=1, color_codes=True, rc=None)

利用seaborn.set进行风格设置

import seaborn as sns
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
def sinplot(flip=2):
    x = np.linspace(0,20, 50)
    for i in range(1,5):
        plt.plot(x, np.cos(x + i * 0.8) * (9 - 2*i) * flip)
sinplot() 

python数据分析与可视化——利用Seaborn进行绘图

sns.set(style='darkgrid',font_scale=1.5)
sinplot() 

python数据分析与可视化——利用Seaborn进行绘图

如果需要转换为seaborn默认的绘图设置,只需调用sns.set( )方法即可。

sns.set()
sinplot() 

设置主题
利用set_style( )是用来设置主题的。
Seaborn有五个预设好的主题: darkgrid, whitegrid,dark,white,和 ticks,默认为darkgrid。

sns.set_style("whitegrid")  
sinplot() 

python数据分析与可视化——利用Seaborn进行绘图
Seaborn将matplotlib的参数划分为两个独立的组合。第一组是设置绘图的外观风格的,第二组主要将绘图的各种元素按比例缩放的,以至可以嵌入到不同的背景环境中。控制这些参数的接口主要有两对方法:
控制风格:axes_style(), set_style()
缩放绘图:plotting_context(), set_context()

每对方法中的第一个方法(axes_style(), plotting_context())会返回一组字典参数,而第二个方法(set_style(), set_context())会设置matplotlib的默认参数。

利用set_style( )是用来设置主题的。Seaborn有五个预设的主题: darkgrid, whitegrid,dark,white,和 ticks,默认为darkgrid。

sns.set_style("whitegrid")  
sinplot() 

python数据分析与可视化——利用Seaborn进行绘图
在seaborn中,可以利用despine()方法移除绘图中顶部和右侧的轴线。

sinplot()
sns.despine() 

python数据分析与可视化——利用Seaborn进行绘图
despine()方法中可以利用offset参数讲轴线进行偏置,另外,当刻度没有完全覆盖整个坐标轴的的范围时,利用trim参数限制已有坐标轴的范围。

sinplot()
sns.despine(offset=20, trim=True) 

python数据分析与可视化——利用Seaborn进行绘图
也可以通过despine()控制哪个脊柱将被移除。

sinplot()
sns.despine(left=True) 

python数据分析与可视化——利用Seaborn进行绘图
也可以通过despine()控制哪个脊柱将被移除。

sinplot()
sns.set(style='whitegrid',palette='muted',color_codes=True)
sns.despine(left=True,bottom=True) 

python数据分析与可视化——利用Seaborn进行绘图
除了选用预设的风格外,可以利用with 语句使用axes_style()方法设置临时绘图参数。

with sns.axes_style("darkgrid"):
    plt.subplot(2,1,1)
    sinplot( )
plt.subplot(2,1, 2)
sinplot(-1) 

python数据分析与可视化——利用Seaborn进行绘图
seaborn中通过set_context()设置缩放参数,预设的参数有paper, notebook, talk, poster。默认为notebook。

sns.set_style("darkgrid", {"axes.facecolor": ".9"})
sinplot() 

python数据分析与可视化——利用Seaborn进行绘图

sns.set_context("paper")
sinplot() 

python数据分析与可视化——利用Seaborn进行绘图

sns.set_context("notebook", font_scale=1.8, rc={"lines.linewidth": 1.5})
sinplot() 

python数据分析与可视化——利用Seaborn进行绘图

常用的绘图

直方图和密度曲线图

Seaborn中利用distplot( )和 kdeplot( )绘制直方图和密度曲线图,distplot( )为hist加强版,默认情况下绘制一个直方图,并嵌套一个对应的密度图。

import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
sns.set(palette="muted",color_codes=True)
rs=np.random.RandomState(10)
d=rs.normal(size=100)
f,axes=plt.subplots(2, 2, figsize=(7, 7), sharex=True)
sns.distplot(d, kde=False, color="b", ax=axes[0,0])
sns.distplot(d, hist=False, rug=True, color="r", ax=axes[0,1])
sns.distplot(d, hist=False,color="g", kde_kws={"shade":True}, ax=axes[1,0])
sns.distplot(d, color="m", ax=axes[1,1])
plt.show() 

python数据分析与可视化——利用Seaborn进行绘图

散点图

在Seaborn中,利用stripplot绘制各变量在每个类别的值。
例:在iris数据集中,显示Petal.Width在Species上值的分布

sns.set(style='white',color_codes=True) #设置样式 
sns.stripplot(x=df_iris['Species'],y= df_iris['Petal.Width'],data=df_iris)
sns.despine()   #去坐标轴 

python数据分析与可视化——利用Seaborn进行绘图
如果需要看清每个数据点,可以使用swarmplot函数

sns.swarmplot(x=df_iris['Species'],y= df_iris['Petal.Width'],data=df_iris)
sns.despine()   #去坐标轴 

python数据分析与可视化——利用Seaborn进行绘图

箱型图

有时候,散点图表达的值的分布信息有限,因此需要一些其它的绘图。箱线图可以观察四分位数、中位数和极值。Seaborn中利用boxplot( )绘制箱线图。

df_iris=pd.read_csv('D:\dataset\iris.csv')
sns.boxplot(x=df_iris['Species'],y = df_iris['Petal.Width'])  
plt.show() 

python数据分析与可视化——利用Seaborn进行绘图

df_iris=pd.read_csv('D:\dataset\iris.csv')
sns.set(style="ticks")  
sns.boxplot(x=df_iris['Species'],y = df_iris['Petal.Width'])  
plt.show() 

python数据分析与可视化——利用Seaborn进行绘图

pairplot

在seaborn中利用 pairplot()实现数据特征的两两对比。默认是所有特征,可以通过vars参数指定部分特征。

seaborn.pairplot(data, hue=None, hue_order=None, palette=None, vars=None, x_vars=None, y_vars=None, kind='scatter', diag_kind='auto', markers=None, height=2.5, aspect=1, dropna=True, plot_kws=None, diag_kws=None, grid_kws=None, size=None) 

pairplot主要展现的是变量两两之间的关系(线性或非线性,有无较为明显的相关关系)

df_iris=pd.read_csv('D:\dataset\iris.csv')
sns.set(style="ticks")  
g = sns.pairplot(df_iris,vars=['Sepal.Length', 'Petal.Length']) 

python数据分析与可视化——利用Seaborn进行绘图

小提琴图

小提琴图其实是箱线图与核密度图的结合,箱线图展示了分位数的位置,小提琴图则展示了任意位置的密度,通过小提琴图可以知道哪些位置的密度较高。在图中,白点是中位数,黑色盒型的范围是下四分位点到上四分位点,细黑线表示须。外部形状即为核密度估计(在概率论中用来估计未知的密度函数,属于非参数检验方法之一)。

sns.set_style("whitegrid")
df_iris=pd.read_csv('D:\dataset\iris.csv')
ax = sns.violinplot(x=df_iris['Petal.Length']) 

python数据分析与可视化——利用Seaborn进行绘图

柱状图

在Seaborn中使用barplot函数绘制柱状图,默认情况下,绘制的y轴是平均值。

df_iris=pd.read_csv('D:\dataset\iris.csv')
sns.barplot(x=df_iris['Species'],y=df_iris['Petal.Length'],data=df_iris) 

python数据分析与可视化——利用Seaborn进行绘图
在柱状图中,经常会绘制类别的计数柱状图,在matplotlib中需要对DataFrame进行计算,而在Seaborn中则使用countplot函数即可。

sns.countplot(x='Species',data=df_iris) 

python数据分析与可视化——利用Seaborn进行绘图

多变量图

在matplotlib中,为了绘制两个变量的分布关系,常使用散点图的方法。在Seaborn中,使用jointplot函数绘制一个多面板图,不仅可以显示两个变量的关系,还可以显示每个单变量的分布情况。

sns.jointplot(x='Petal.Length',y='Petal.Width' ,data=df_iris) 

python数据分析与可视化——利用Seaborn进行绘图

在jointplot函数中,改变kind参数为kde,但变量的分布就用密度图来代替,而散点图则会被等高线图代替。

ointplot(x='Petal.Length',y='Petal.Width' ,data=df_iris,kind='kde') 

python数据分析与可视化——利用Seaborn进行绘图

回归图

绘制回归图可以揭示两个变量间的线性关系。Seaborn中,使用regplot函数绘制回归图。

sns.regplot(x='Petal.Length',y='Petal.Width' ,data=df_iris) 

python数据分析与可视化——利用Seaborn进行绘图

收藏
评论区

相关推荐

1. 这才是 Python 学习的正确起手姿势,滚雪球学 Python
在博客上,我写了很多关于 Python 的文章,很多朋友可能觉得橡皮擦应该是一个 Python 开发人员或者一个技术开发人员,但很遗憾的告诉大家,橡皮擦恰好是很多公司中开发人员的对立面【产品经理】。但我是一个相当懂技术人的产品经理。 一、Python 初次接触,Python 变量与基本运算 1.1 滚雪球学 Python 课程前置导语 从本篇博
4. 列表一学完,Python 会一半,滚雪球学 Python
滚雪球学 Python,目标就是让 Python 学起来之后,越滚越大。 四、列表一学完,Python 会一半 4.1 列表是个啥 列表,先记住英文为 list ,它是 Python 中一种可以动态添加删除内容的数据类型,由一系列的元素组成。直白点说列表是将多个变量组合在一起的那么一个容器。 很多文章会找一个与列表相似的编程概念,一般会说 P
11. 用别人写好的代码,完成我的工作,剩下的时间去摸鱼
今天是持续写作的第 <font color"red"11</font / 100 天。 如果你有想要交流的想法、技术,欢迎在评论区留言。 Python 为何那么多人都喜欢,就是因为很多大佬给我们造好了“轮子”了,拿着大佬的轮子,我骄傲 十一、Python 模块的设计与应用 模块是一个概念,它包含 1N 个文件,如果文件是 Python 代码
13. 如果自己写的 Python 程序出错了,怎么办?
本篇文章主要内容为程序错误与异常处理,顺带会说一下内置模块 logging 。 <center<font colorred缓解一下视疲劳</font</center 13. 如果自己写的 Python 程序出错了,怎么办?(https://imghelloworld.osscnbeijing.aliyuncs.com/ee1f42d25d
15. Python 程序运行速度如何提高十倍?第一遍滚雪球学 Python 收工
本篇文章将给大家介绍 Python 多线程与多进程相关知识,学习完该知识点之后,你的 Python 程序将进入另一个高峰。 <center<font colorred缓解一下视疲劳</font</center 15. Python 程序运行速度如何提高十倍?第一遍滚雪球学 Python 收工(https://imghelloworld.oss
原来Python绘图也可以这么漂亮,这次真的是学习到了!
(https://imghelloworld.osscnbeijing.aliyuncs.com/8830803f033eeed85783e9058cf08968.png) 作者:朱小五 来源:快学Python 👆人生苦短,快学Python! 最近看了一篇文章《一个牛逼的Python 可视化库:PyG2Plot》,可惜只是简单介
简单盘点12个Python数据可视化库,通吃任何领域
(https://imghelloworld.osscnbeijing.aliyuncs.com/a7ecca0969cf04ff24e7c734e3cb73df.png) 大家好,我是小五🐶 在数据可视化的研究热潮中,如何让数据生动呈现,成了一个具有挑战性的任务,随之也出现了大量的可视化软件。相对于其他商业可视化软件,Python
Python Sanic 高并发服务开发指南
技术基础 AsyncIO Python 3.4 开始引入 AsyncIO(https://docs.python.org/3/library/asyncio.html) 模块,使得 Python 也支持异步 IO。3.5 版本里添加了 async/await 关键字,使得异步 IO 代码编写更加方便。3.6 和 3.7 版本继续进行了完善
我的python总结
建议刚开始学习直接使用ANACONDAhttps://www.anaconda.com/download/配置python环境变量https://docs.python.org/3.6/using/cmdline.htmlenvvarPYTHONMALLOCPython PEP8导包顺序1. Python标准
Python编程基础(快速入门必看
Python编程基础一、Python语言基本语法 Python是一
python数据分析与可视化——利用Seaborn进行绘图
利用Seaborn进行绘图下面例子中所用数据下载地址——Matplotlib绘图基本模仿MATLAB绘图库,其绘图风格和MATLAB类似。由于MATLAB绘图风格偏古典,因此,Python开源社区开发了Seabo
玩转python爬虫
&ensp;&ensp;&ensp;  近几年来,python的热度一直特别火!大学期间,也进行了一番深入学习,毕业后也曾试图把python作为自己的职业方向,虽然没有如愿成为一名python工程师,但掌握了python,也让我现如今的工作开展和职业发展更加得心应手。这篇文章主要与大家分享一下自己在python爬虫方面的收获与见解。 &ensp;&ensp;
盘点最重要的7个Python库
点击上方“Python爬虫与数据挖掘”,进行关注回复“书籍”即可获赠Python从入门到进阶共10本电子书导读:对于那些对Python数据生态系统不太熟悉的人士,我将简要地介绍一部分重要的库。 作者:韦斯·麦金尼(Wes McKinney)译者:徐敬来源:大数据DT(ID:hzdashuju) 01 NumPy http://numpy
10行Python代码自动清理电脑内重复文件,解放双手!
](https://mp.weixin.qq.com/mp/appmsgalbum?actiongetalbum&albumid1337012041701326848&bizMzI1MTUyMjc1Mgwechatredirect) 前言 大家好,又到了Python办公自动化系列。今天分享一个系统层面的自动化案例:「给定一个文件夹,使用Python检查
初窥 Python 的 import 机制
本文适合有 Python 基础的小伙伴进阶学习。 作者:pwwang一、前言本文基于开源项目: https://github.com/pwwang/pythonimportsystem补充扩展讲解,希望能够让读者一文搞懂 Python 的 import 机制。 1.1 什么是 import 机制?通常来讲,在一段 Python 代码中去执行引用另一个模块中