seaborn.
kdeplot
(x=None, *, y=None, shade=None, vertical=False, kernel=None, bw=None, gridsize=200, cut=3, clip=None, legend=True, cumulative=False, shade_lowest=None, cbar=False, cbar_ax=None, cbar_kws=None, ax=None, weights=None, hue=None, palette=None, hue_order=None, hue_norm=None, multiple='layer', common_norm=True, common_grid=False, levels=10, thresh=0.05, bw_method='scott', bw_adjust=1, log_scale=None, color=None, fill=None, data=None, data2=None, **kwargs)¶使用核密度估计绘制单变量或双变量分布。
核密度估计(KDE)图是一种可视化数据集中观测值分布的方法,类似于直方图。KDE使用一个或多个维度上的连续概率密度曲线来表示数据。
该方法将在 user guide .
相对于直方图,KDE可以生成一个不那么混乱、更易于解释的图,尤其是在绘制多个分布时。但是,如果潜在的分布是有界的或不平滑的,它就有可能引入扭曲。像直方图一样,表示的质量也取决于良好平滑参数的选择。
data
向量或键指定x轴和y轴位置的变量。
Alias fill
. 使用 fill
建议使用。
方向参数。
0.11.0 版后已移除: 通过指定 x
或 y
变量。
定义内核的函数。
0.11.0 版后已移除: 对非高斯核的支持已被删除。
平滑参数。
0.11.0 版后已移除: 看见 bw_method
和 bw_adjust
.
评估网格每个维度上的点数。
因子,乘以平滑带宽,它决定了评估网格超出极端数据点的距离。设置为0时,在数据限制处截断曲线。
不要评估超出这些限制的密度。
如果为False,则抑制语义变量的图例。
如果为真,则估计累积分布函数。需要scipy。
如果为False,则最低轮廓下方的区域将是透明的
0.11.0 版后已移除: 看见 thresh
.
如果为True,则添加颜色条以注释二元图中的颜色映射。注意:当前不支持带有 hue
变量井。
matplotlib.axes.Axes
matplotlib.axes.Axes
颜色栏的预先存在的轴。
传递给的其他参数 matplotlib.figure.Figure.colorbar()
.
matplotlib.axes.Axes
matplotlib.axes.Axes
绘图的现有轴。否则,请致电 matplotlib.pyplot.gca()
内部的。
data
向量或键如果提供,使用这些值对核密度估计进行加权。
data
向量或键映射以确定绘图元素颜色的语义变量。
matplotlib.colors.Colormap
字符串、列表、dict或用于在映射时选择要使用的颜色的方法 hue
语义的。字符串值传递给 color_palette()
. List或dict值表示分类映射,而colormap对象表示数字映射。
指定文件的分类级别的处理和打印顺序 hue
语义的。
matplotlib.colors.Normalize
元组或以数据单位设置规范化范围的一对值或将从数据单位映射到 [0, 1] 间隔。用法意味着数字映射。
语义映射创建子集时绘制多个元素的方法。仅与单变量数据相关。
如果为真,则按观测次数缩放每个条件密度,使所有密度下的总面积总和为1。否则,独立地规格化每个密度。
如果为真,则对每个核密度估计使用相同的计算网格。仅与单变量数据相关。
要绘制等高线的等高线级别或值的数目。向量参数中的值必须递增 [0, 1] . 等级对应于密度的iso比例:例如,20%的概率质量将位于0.2的等高线之下。仅与二元数据相关。
绘制等高线的最低iso比例级别。忽略时间 levels
是一个向量。仅与二元数据相关。
确定要使用的平滑带宽的方法;传递给 scipy.stats.gaussian_kde
.
按乘法比例缩放所选值的因子 bw_method
. 增加将使曲线更平滑。见注释。
使用给定的基数(默认值为10)在数据轴(或多个轴,使用双变量数据)上设置对数刻度,并在日志空间中计算KDE。
matplotlib color
matplotlib颜色不使用色调映射时的单色规范。否则,绘图将尝试挂接到matplotlib属性循环中。
如果为真,则填充单变量密度曲线下或双变量等高线之间的区域。如果没有,则默认值取决于 multiple
.
pandas.DataFrame
, numpy.ndarray
、映射或序列1.数据帧, numpy.ndarray公司、映射或序列输入数据结构。可以指定给命名变量的向量的长格式集合,或将在内部重新成形的宽格式数据集。
其他关键字参数传递给以下matplotlib函数之一:
matplotlib.axes.Axes.plot()
(单变量, fill=False
)
matplotlib.axes.Axes.fill_between()
(单变量, fill=True
)
matplotlib.axes.Axes.contour()
(双变量, fill=False
)
matplotlib.axes.contourf()
(双变量, fill=True
)
matplotlib.axes.Axes
包含plotlib的plotlib。
参见
displot
分布图函数的图形级接口。
histplot
用可选的标准化或平滑绘制装箱计数的直方图。
ecdfplot
绘制经验累积分布函数。
jointplot
用一元边际分布画一个二元图。
violinplot
使用增强的BoxDraw密度估计。
笔记
这个 带宽 平滑核的标准差是一个重要的参数。带宽的错误指定会导致数据的失真表示。就像在直方图中选择面元宽度一样,过度平滑的曲线可以消除分布的真实特征,而欠平滑的曲线可以从随机变化中创建虚假特征。当真实分布是平滑的、单峰的、大致呈钟形时,设置默认带宽的经验法则最有效。使用检查默认行为总是一个好主意 bw_adjust
增加或减少平滑量。
由于平滑算法使用高斯核,估计的密度曲线可以扩展到对特定数据集没有意义的值。例如,当平滑自然为正值的数据时,可以在负值上绘制曲线。这个 cut
和 clip
参数可以用来控制曲线的范围,但是在自然边界附近有许多观测值的数据集可以通过不同的可视化方法得到更好的服务。
当数据集是自然离散或“尖峰”(包含许多相同值的重复观测值)时,也需要考虑类似的问题。核密度估计总是会产生一条平滑的曲线,在这种情况下会产生误导。
密度轴上的单位是造成混淆的常见原因。当核密度估计产生一个概率分布时,曲线在每个点的高度给出一个密度,而不是概率。概率只能通过在一个范围内积分密度来获得。曲线被标准化,因此所有可能值的积分为1,这意味着密度轴的比例取决于数据值。
实例