前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数据可视化(7)-Seaborn系列 | 核函数密度估计图kdeplot()

数据可视化(7)-Seaborn系列 | 核函数密度估计图kdeplot()

原创
作者头像
数据分析可视化
修改2019-09-25 15:53:07
4K0
修改2019-09-25 15:53:07
举报
文章被收录于专栏:数据分析与可视化

核函数密度估计图

该图主要用来拟合并绘制单变量或双变量核密度估计值。

函数原型

代码语言:txt
复制
seaborn.kdeplot(data, data2=None, shade=False, 
                vertical=False, kernel='gau', bw='scott',
                gridsize=100, cut=3, clip=None,
                legend=True, cumulative=False,
                shade_lowest=True, cbar=False, 
                cbar_ax=None, cbar_kws=None, ax=None, **kwargs)

参数解读

代码语言:txt
复制
shade:阴影:bool类型
作用:设置曲线下方是否添加阴影,如果为True则在曲线下方添加阴影
(如果数据为双变量则使用填充的轮廓绘制),若为False则,不绘制阴影

cbar:bool类型
作用:如果为True则绘制双变量KDE图,并添加颜色条

案例教程

代码语言:txt
复制
import matplotlib.pyplot as plt
import numpy as np; 
import seaborn as sns; 
sns.set(color_codes=True)
np.random.seed(10)
#构建数据
mean, cov = [0, 2], [(1, .5), (.5, 1)]
x, y = np.random.multivariate_normal(mean, cov, size=50).T
"""
案例1:
绘制基本的单变量密度曲线图
"""
sns.kdeplot(x)
plt.show()
代码语言:txt
复制
import matplotlib.pyplot as plt
import numpy as np; 
import seaborn as sns; 
sns.set(color_codes=True)
np.random.seed(10)
#构建数据
mean, cov = [0, 2], [(1, .5), (.5, 1)]
x, y = np.random.multivariate_normal(mean, cov, size=50).T
"""
案例2:
绘制密度曲线,并在曲线下着色
通过设置color来设置不同的显示颜色
"""
sns.kdeplot(x, shade=True, color="g")
plt.show()
代码语言:txt
复制
import matplotlib.pyplot as plt
import numpy as np; 
import seaborn as sns; 
sns.set(color_codes=True)
np.random.seed(10)
#构建数据
mean, cov = [0, 2], [(1, .5), (.5, 1)]
x, y = np.random.multivariate_normal(mean, cov, size=50).T
"""
案例3:
绘制双变量密度曲线
"""
sns.kdeplot(x, y)
plt.show()
代码语言:txt
复制
import matplotlib.pyplot as plt
import numpy as np; 
import seaborn as sns; 
sns.set(color_codes=True)
np.random.seed(10)
#构建数据
mean, cov = [0, 2], [(1, .5), (.5, 1)]
x, y = np.random.multivariate_normal(mean, cov, size=50).T
"""
案例 4:
使用轮廓填充
"""
sns.kdeplot(x, y, shade=True,color='r')
plt.show()
代码语言:txt
复制
import matplotlib.pyplot as plt
import numpy as np; 
import seaborn as sns; 
sns.set(color_codes=True)
np.random.seed(10)
#构建数据
mean, cov = [0, 2], [(1, .5), (.5, 1)]
x, y = np.random.multivariate_normal(mean, cov, size=50).T
"""
案例5:
使用更多轮廓级别和不同的调色板:
"""
sns.kdeplot(x, y, n_levels=30, cmap="Purples_d")
plt.show()
代码语言:txt
复制
import matplotlib.pyplot as plt
import numpy as np; 
import seaborn as sns; 
sns.set(color_codes=True)
np.random.seed(10)
#构建数据
mean, cov = [0, 2], [(1, .5), (.5, 1)]
x, y = np.random.multivariate_normal(mean, cov, size=50).T
"""
案例6:
给轮廓添加颜色条
"""
sns.kdeplot(x, y, cbar=True)
plt.show()
代码语言:txt
复制
import matplotlib.pyplot as plt
import numpy as np; 
import seaborn as sns; 
# 获取数据
iris = sns.load_dataset("iris")
setosa = iris.loc[iris.species == "setosa"]
virginica = iris.loc[iris.species == "virginica"]
"""
案例7:
绘制多个阴影双变量密度图(这里绘制两个)
"""
sns.kdeplot(setosa.sepal_width, setosa.sepal_length,cmap="Reds", shade=True, shade_lowest=False)

sns.kdeplot(virginica.sepal_width, virginica.sepal_length,cmap="Blues", shade=True, shade_lowest=False)
plt.show()

案例地址

案例代码已上传:Github https://github.com/Vambooo/SeabornCN

整理制作:数据分析与可视化学研社

更多分享,请关注公众号
更多分享,请关注公众号

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
作者已关闭评论
0 条评论
热度
最新
推荐阅读
目录
  • 核函数密度估计图
  • 函数原型
  • 参数解读
  • 案例教程
  • 案例地址
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档