本文共 2183 字,大约阅读时间需要 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/