Seaborn是一个基于matplotlib且数据结构与pandas统一的统计图制作库。他提前已经定义好了一套自己的风格。然后也封装了一系列的方便的绘图函数,之前通过 Seaborn是基于matplotlib的Python数据可视化库。它提供了用于绘制引人入胜且内容丰富的统计图形的高级界面。 这个函数功能非常强大,可以用来表示多个变量之间的关联关系。默认情况下是绘制散点图,也可以绘制线性图,具体绘制什么图形是通过 seaborn.relplot(x=None,y=None,data=None,hue=None,col=None, row=None,kind=None,style=None) sns.scatterplot(x=None,y=None,hue=None,data=None) 绘制折线图方法一 绘制折线图的方法二 分类图的绘制,采用的是sns.catplot来实现的。 图形的分类 seaborn.catplot 是一个将分类图绘制到FacetGrid上图级别接口。 这个函数可以访问多个轴级功能,这些轴级功能通过不同的可视化图表展示数字和一个或多个分类变量的关系。 分类散点图 分类分布图 分类估计图 sns.catplot(x=None,y=None,data=None,row=None,col=None,kind=‘strip’) sns.stripplot(x=None,y=None,data=None,hue=None) sns.swarpmply(x=None,y=None,hue=None,data=None) 分类分布图,主要是根据分类来看,然后再每个分类下数据的分布情况。也是通过 boxplot(x=None,y=None,data=None, palette=None,hue=None) violinplot(x=None,y=None,data=None,inner=None) 分类统计图,则是根据分类,统计每个分类下的数据的个数或者比例。 分析泰坦尼克号获救的男女比例 分布绘图主要分为单变量分布以及二变量分布和pairplot 单一变量主要就是通过直方图来绘制。在 seaborn.distplot(a,bins=None,kde=True,hist=True,rug=False) 多变量分布图可以看出两个变量之间的分布关系。一般都是采用多个图进行表示。多变量分布图采用的函数是 seaborn.jointplot(x,y,data=None,kind=‘scatter’, color=None,height=5,ratio=5,space=0.2,dropna=True) 添加回归和核密度拟合 使用六边形箱将散点图替换为联合直方图 seaborn.pairplot(data,hue=None,vars=None) 默认情况下,此函数将创建一个轴网格,以便每个变量在 也可以显示变量的子集或行和列上绘制不同的变量 当指定数据集 对单变量使用核密度估计
Seaborn第三方绘图
关系型绘图
Seaborn介绍
matplotlib
需要很大代码才能完成绘图,使用seaborn
可能是一行代码的事情。Seaborn的绘图
Seaborn安装
pip install seaborn
学习文档
关系型绘图
seaborn.relplot(kind=None)
里面的kind
参数来决定的。实际上以下两个函数就是relplot
的特征:
# sns 为网上固定的写法,按照官网的标准 # seaborn 是基于matplotlib的封装 import seaborn as sns import pandas as pd from matplotlib import pyplot as plt import numpy as np # 读取csv文件 df = pd.read_csv('seaborn-data-master/tips.csv') # relplot 默认情况下绘制散点图 sns.relplot(x='total_bill',y='tip',data=df,hue='day',col='time',row='sex') # 为什么可以使用plt.show来释放,因为seaborn也是基于matplotlib来实现 plt.show()
散点图
import seaborn as sns import pandas as pd from matplotlib import pyplot as plt import numpy as np df = pd.read_csv('seaborn-data-master/tips.csv') sns.scatterplot(x='total_bill',y='tip',data=df,hue='day') plt.show()
折线图
import seaborn as sns import pandas as pd from matplotlib import pyplot as plt import numpy as np df = pd.read_csv('seaborn-data-master/fmri.csv') # kind 为指定绘制的图形 sns.relplot(x='timepoint', y='signal',data=df,kind='line',hue='region') plt.show()
col = event
import seaborn as sns import pandas as pd import numpy as np from matplotlib import pyplot as plt df = pd.read_csv('seaborn-data-master/fmri.csv') sns.lineplot(x='timepoint', y='signal',data=df,hue='region',style='event') # 展示图例 plt.show()
relplot 与 lineplot或scatterplot 的区别
分类绘制
cat
是categroy
的简写。这个方法默认绘制的分类散点图,如果想要绘制其他类型的图,同样也是可以通过kind
参数来指定。
seaborn.replot 与 seaborn.catplot
seaborn.replot
kind
参数选择要使用的基础轴级功能:
scatterplot()
(带有kind="scatter"
;默认值)lineplot()
(带有kind=line
)seaborm.catplot
kind
参数可以选择的轴级基础函数有:
stripplot()
(带有kind="strip"
;默认值)swarmplot()
(带有kind="swarm"
)
boxplot()
(带有 kind="box"
)violineplot()
(带有 kind="violin"
)boxenplt()
(带有 kind="boxen"
)
pointplot()
(带有 kind="point"
)barplot()
(带有 kind="bar"
)countplot()
(带有 kind="count"
)分类图的绘制
import pandas as pd import numpy as np import seaborn as sns from matplotlib import pyplot as plt df = pd.read_csv('seaborn-data-master/tips.csv') # 日期 与 total_bill 之间的关系 sns.catplot(x='day',y='total_bill',data=df,hue='sex')
分类散点图
import pandas as pd import numpy as np import seaborn as sns from matplotlib import pyplot as plt df = pd.read_csv('seaborn-data-master/tips.csv') sns.catplot(x='day',y='total_bill',data=df,hue='sex')
分簇散点图
sns.swarmplot(x='day',y='total_bill',data=df,hue='sex') plt.show()
分类分布图
catplot
来实现,以下三个方法分别是不同的kind
参数
箱型图
import seaborn as sns import pandas as pd import numpy as np from matplotlib import pyplot as plt df = pd.read_csv('athlete_events.csv') countries = { 'CHN':'中国', 'JPN':'日本', 'KOR':'日本', 'USA':'美国', 'CAN':'加拿大', 'BRA':'巴西', 'GBR':'英国', 'FRA':'法国', 'ITA':'意大利', 'ETH':'埃塞俄比亚', 'KEN':'肯尼亚', 'NIG':'尼日利亚' } # 判断在countries国家的数据 # 判断国家在countries中则选择出来 # isin判断值是否在countries当中 # 布尔索引筛选出数据 my_ath = df[df['NOC'].isin(list(countries.keys()))] # 绘制箱型图 plt.figure(figsize=(16,8)) sns.boxplot(x='NOC',y='Height',data=my_ath) plt.show()
小提琴图
box
,则绘制一个微型箱型图。若为quartiles
,则显示四分位数线。若为point
或stick
,则显示具体数据点或数据线。使用None
则绘制不加修饰的小提琴图。import pandas as pd import numpy as np import seaborn as sns from matplotlib import pyplot as plt # 读取数据 tips = pd.read_csv('seaborn-data-master/tips.csv') # 绘制小提琴图 # 中间 默认箱型图 inner-->quartile 四分位数 sns.violinplot(x='day',y='total_bill',inner="quartile",data=tips,hue='sex') plt.show()
分类统计图
barplot() (with kind="bar")
countplot() (with kind="count")
pointplot() (with kind="point")
将点估计和置信区间显示为矩形条
seaborn
中的条线图具有统计功能,可以统计出比例,平均数,也可以按照你想要的统计函数来统计。import seaborn as sns import pandas as pd import numpy as np # 直观体现 total_bill 与 day 的统计平均数 tips = pd.read_csv('seaborn-data-master/tips.csv') tips.head() # 黑线 置信区间 线条越高 说明数据是比较离散的 # 默认情况下是采用平均数来进行 # estimator : 默认情况下采用平均数,我们可以指定为sum来查看数值 sns.catplot(x='day',y='total_bill',data=tips,kind='bar',estimator=sum) plt.show()
titanic = pd.read_csv('seaborn-data-master/titanic.csv') titanic.head() # 绘制直方图查看数据 # survived : 代表着获救的人数 # 可通过estimator来指定人数 sns.catplot(x='sex',y='survived',data=titanic,kind='bar',estimator=sum) plt.show()
使用条形图显示每个分类箱中的观测值
titanic.head() # count :代表为单个分类中显示值的个数 # kind = 'count' : # 当为count的时候,只能指定x或y单个值 sns.catplot(x='sex',data=titanic,kind='count')
使用散点图字形显示点估计和置信区间
# 舱为 与 营救男女获救关系 # hue分组 # class 为舱位 sns.catplot(x='sex',y='survived',data=titanic,kind='point',hue='class')
分布绘图
单变量分布
seaborn
中直方图的绘制采用的是distplot
,其中dist
是distribution
的简写,不是histogram
的简写。
# 传入一维的数组 plt.figure(figsize=(20,8),dpi=80) sns.distplot(titanic['age']) plt.show()
# 传入一维的数组 plt.figure(figsize=(20,8),dpi=80) # 当不绘制直方图时,指定hits # 当绘制直方图,不绘制高密度曲线时 ,指定kde sns.distplot(titanic['age'],bins=30,hist=False) plt.show()
# 传入一维的数组 plt.figure(figsize=(20,8),dpi=80) # 当不绘制直方图时,指定hits # 当绘制直方图,不绘制高密度曲线时 ,指定kde sns.distplot(titanic['age'],bins=30,hist=True,kde=False) plt.show()
# 传入一维的数组 plt.figure(figsize=(20,8),dpi=80) # 当不绘制直方图时,指定hits # 当绘制直方图,不绘制高密度曲线时 ,指定kde sns.distplot(titanic['age'],bins=30,hist=True,kde=False,rug=True) plt.show()
二变量分布
jointplot
。
scatter
、reg
、resid
、kde
、hex
# 多变量绘图 import pandas as pd import numpy as np from matplotlib import pyplot as plt import seaborn as sns # 读取数据 tips =pd.read_csv('seaborn-data-master/tips.csv') sns.jointplot(x='total_bill',y='tip',data=tips,height=6)
sns.jointplot(x='total_bill',y='tip',data=tips,height=6,kind='reg')
import pandas as pd import numpy as np from matplotlib import pyplot as plt import seaborn as sns ath_data = pd.read_csv('athlete_events.csv') # 筛选出NOC为中国数据进行比较身高数据 ath_china = ath_data[ath_data['NOC']=='CHN'] # grisize : 指定六边形的大小 # 数据对比 :中国的体重和身高集中图 sns.jointplot(x='Height',y='Weight',data=ath_china,kind='hex',gridsize=20,height=7)
# grisize : 指定六边形的大小 # 数据对比 :中国的体重和身高集中图 # kind='hex':代表为六边形 # gridsize : 为六边形的大小 # height : 图片大小 # color : 为颜色 # ration : 为子图的大小 # marginal_kws : 绘图组件的其他参数位置 # rug : rug越密集显示的数据越多 # kde : 核密度曲线 sns.jointplot(x='Height',y='Weight',data=ath_china,kind='hex',gridsize=20,height=7,color='r',ratio=2,marginal_kws={'rug':True,'kde':True})
在数据集中绘制成对关系
data
单行的y轴和单列的x轴上共享。对角轴的处理方式有所不同,绘制了一个图以显示该列中变量的数据的单变量分布。import pandas as pd import numpy as np import seaborn as sns # 读取画的数据 iris = pd.read_csv('seaborn-data-master/iris.csv') iris.head() # 绘制成对关系图 sns.pairplot(iris)
sns.pairplot(vars=['sepal_length','sepal_width'],data=iris)
sns.pairplot(vars=['sepal_length','sepal_width'],data=iris,diag_kind='kde')
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算