博客
关于我
(数据科学学习手札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的主要参数

  • x、y:成对变量的名称或数据数组。
  • data:数据框,用于获取变量值(默认为None)。
  • kind:决定联合图的样式(如'reg'、'hex'、'kde'等)。
  • color:颜色名称,用于图像填充。
  • height:图像高度(默认为height)。
  • ratio:联合图与边缘图的比例(默认为5)。
  • space:联合图与边缘图的空白大小(默认为0)。
  • xlim、ylim:设置坐标轴范围。
  • joint_kws、marginal_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/

你可能感兴趣的文章
Python:Google API - 从消息中获取 mimeTypes
查看>>
Python:Google API - 从消息中获取 mimeTypes
查看>>
Python:subprocess.call,stdout to file,stderr to file,在屏幕上实时显示stderr
查看>>
Python:TypeError:无法连接“str“和“int“对象
查看>>
Python:XPath 在 ElementTree 中不可用
查看>>
Python:从 FTP 服务器下载文件
查看>>
python:从列表中创建元组列表
查看>>
Python:从嵌套列表中删除重复项
查看>>
Python:从间隔映射到值
查看>>
Python:使用 shell=False 的子进程调用不起作用
查看>>
Python:修改 PATH 环境变量的平台无关方式
查看>>
Python:假与 0
查看>>
Python:函数使用
查看>>
Python:函数进阶
查看>>
Python:在整数的二进制表示中查找最长的二进制间隙
查看>>
Python:如何从二进制转换为 base 64 并返回?
查看>>
Python:如何以非阻塞方式读取子进程的标准输出
查看>>
Python:如何使用 plotly 制作阴影区域或交替背景颜色?
查看>>
Python:如何根据日期时间获取值的计数
查看>>
python:如何检测串行 COM 上的设备名称/ID
查看>>