博客
关于我
(数据科学学习手札62)详解seaborn中的kdeplot、rugplot、distplot与jointplot
阅读量:420 次
发布时间:2019-03-06

本文共 2173 字,大约阅读时间需要 7 分钟。

Seaborn可视化工具详解:从kdeplot到jointplot的实用指南

一、KDEPlot——核密度估计图

Seaborn的KDEPlot是绘制和分析单变量或双变量核密度估计图的强大工具。以下是其主要参数及使用方法:

1.1 核密度估计图的主要参数

  • data:一维数组,用于传递单变量数据。
  • data2:与data结构相同,用于双变量分析时的第二个数据源。
  • shade:布尔值,决定是否填充核密度曲线下的区域(True表示填充)。
  • vertical:布尔值,在单变量分析时决定是否将轴垂直(默认False)。
  • kernel:字符串,指定核密度估计的核类型,默认为高斯核('gau')。
  • legend:布尔值,决定是否显示图例(默认True)。
  • cumulative:布尔值,决定是否绘制累计分布(默认False)。
  • shade_lowest:布尔值,决定是否为最低密度区域着色(默认True)。
  • cbar:布尔值,在双变量分析时决定是否显示颜色条(默认False)。
  • color:颜色名称,核密度曲线的填充颜色。
  • cmap:颜色映射名称,核密度区域的递进色彩方案。
  • n_levels:整数,决定核密度估计的区间数量(默认为B对数区域)。

1.2 KDEPlot的实际使用方法

通过Seaborn的鸢尾花数据集(Iris)进行实践操作:

import seaborn as snsimport matplotlib.pyplot as pltplt.style.use('seaborn')import numpy as np# 加载数据集iris = sns.load_dataset('iris')# 准备数据setosa = iris.loc[iris.species == 'setosa'].reset_index(drop=True)virginica = iris.loc[iris.species == 'virginica'].reset_index(drop=True)# 绘制KDEPlotax = sns.kdeplot(x=setosa.petal_width, y=setosa.petal_length, cmap='Blues', shade=True, shade_lowest=False)

二、RugPlot——原始数据分布图

RugPlot用于直观展示一维数据的分布位置,与KDEPlot不同,它不进行数据拟合,只绘制观测点的位置。

2.1 RugPlot的主要参数

  • a:一维数组,传入观测值。
  • height:每个观测点对应的小条高度(默认0.05)。
  • axis:轴的选择(默认为x轴)。

2.2 RugPlot的实际使用方法

ax = sns.rugplot(iris.petal_length, axis='y')

三、DistPlot——直方图与核密度估计图

DistPlot结合了直方图、KDEPlot和RugPlot功能,适用于对单变量数据进行多维度分析。

3.1 DistPlot的主要参数

  • a:一维数组,传入分析的单变量数据。
  • bins:直方图的直方数(默认为None,使用Freedman-Diaconis方法计算)。
  • hist:布尔值,决定是否绘制直方图(默认True)。
  • kde:布尔值,决定是否绘制核密度估计曲线(默认True)。
  • rug:布尔值,决定是否绘制RugPlot(默认False)。
  • fit:Scipy统计中的分布类型,用于强行拟合分布(默认None)。
  • color:颜色名称,用于曲线和直方图的填充。
  • norm_hist:布尔值,决定直方图高度表示密度还是频数(默认False)。

3.2 DistPlot的实际使用方法

ax = sns.distplot(iris.petal_length, color='r', rug=True, bins=20)

四、JointPlot——成对变量联合分析图

JointPlot用于展示成对变量的联合分布和相关性分析,支持多种视觉化样式。

4.1 JointPlot的主要参数

  • xy:成对变量的名称或数据数组。
  • data:数据框,用于获取变量值(默认为None)。
  • kind:决定联合图的样式(如'reg'、'hex'、'kde'等)。
  • color:颜色名称,用于图像填充。
  • height:图像高度(默认为height)。
  • ratio:联合图与边缘图的比例(默认为5)。
  • space:联合图与边缘图的空白大小(默认为0)。
  • xlimylim:设置坐标轴范围。
  • joint_kwsmarginal_kws:精细控制联合图和边缘图的样式。

4.2 JointPlot的实际使用方法

ax = sns.jointplot(x='sepal_length', y='sepal_width', data=setosa, kind='kde', space=0, color='g')

五、综合实战与建议

通过以上工具,可以根据具体需求构建丰富的可视化图表。例如:

  • 在联合图中结合KDEPlot和RugPlot;
  • 调整颜色映射和比例;
  • 添加注释和图例以增强可读性。

通过合理搭配这些工具,可以更直观地分析数据分布特征和变量关系。

转载地址:http://xvcuz.baihongyu.com/

你可能感兴趣的文章
Node服务在断开SSH后停止运行解决方案(创建守护进程)
查看>>
node模块化
查看>>
node模块的本质
查看>>
node环境下使用import引入外部文件出错
查看>>
node环境:Error listen EADDRINUSE :::3000
查看>>
Node的Web应用框架Express的简介与搭建HelloWorld
查看>>
Node第一天
查看>>
node编译程序内存溢出
查看>>
Node读取并输出txt文件内容
查看>>
node防xss攻击插件
查看>>
noi 1996 登山
查看>>
noi 7827 质数的和与积
查看>>
NOI-1.3-11-计算浮点数相除的余数
查看>>
noi.ac #36 模拟
查看>>
NOI2010 海拔(平面图最大流)
查看>>
NOIp2005 过河
查看>>
NOIP2011T1 数字反转
查看>>
NOIP2014 提高组 Day2——寻找道路
查看>>
noip借教室 题解
查看>>
NOIP模拟测试19
查看>>