gpt4 book ai didi

python - seaborn jointplot 中的两个横向分布是否可以使用非高斯核

转载 作者:行者123 更新时间:2023-11-28 17:28:06 24 4
gpt4 key购买 nike

我的数据看起来像:

s1 = sns.jointplot(data.columns[i], 
data.columns[j],
data=data,
space=0, color="b", stat_func=None)

enter image description here

如果我改用 kde

s1 = sns.jointplot(data.columns[i], 
data.columns[j],
data=data, kind = 'kde',
space=0, color="b", stat_func=None)

我对二维 kde 插值非常满意,但对横向插值不太满意。问题都放在一起,实际上表明分布的最大值位于两个不同的点,这可能会产生误导。

enter image description here

那么现在真正的问题是:是否可以为两个横向分布指定不同于高斯的内核(蓝色)? (我知道高斯是二维中唯一的选择)。因为例如“biw”(绿色)可能在美学上看起来更好(我仍然不相信从数学上讲,将使用不同内核完成的插值放在一起使它们看起来相同是一件好事......)。所以我的问题是我是否可以在 sns.jointplot 的某处指定不同的内核,或者是用另一个在第二时刻计算的内核覆盖横向分布的唯一方法。

ax1 = sns.distplot(data[data.columns[j]])
sns.kdeplot(data[data.columns[j]], kernel= 'biw', ax = ax1)

enter image description here

最佳答案

您可以为边缘图设置不同的内核:

s1 = sns.jointplot(data.columns[i], 
data.columns[j],
data=data, kind = 'kde',
space=0, color="b", stat_func=None,
marginal_kws={"kernel":"biw"}) # like this

或者,如果你只想改变一个边缘图,你可以重新绘制它们:

s1.ax_marg_y.cla() # clear axis
sns.kdeplot(data.y, ax=s1.ax_marg_y, # choose the ax
kernel="biw", # choose your kernel
legend=0, # remove the legend
vertical=True) # swap axis

vertical=True 允许您切换 x 轴和 y 轴,即如果您更改顶部边距图则不需要。

关于python - seaborn jointplot 中的两个横向分布是否可以使用非高斯核,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36933377/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com