我的数据看起来是:
s1 = sns.jointplot(data.columns[i],
data.columns[j],
data=data,
space=0, color="b", stat_func=None)

如果我用kde代替
s1 = sns.jointplot(data.columns[i],
data.columns[j],
data=data, kind = 'kde',
space=0, color="b", stat_func=None)我很满意二维kde插值,而不是横向的。这两个问题是如此紧密地放在一起,实际上表明分布的最大值位于两个不同的点,这可能是相当误导的。

那么,现在的实际问题是:是否可以为这两个横向分布指定与高斯不同的内核(蓝色)?(我知道高斯在2D中是唯一的选择)。例如,因为'biw‘(绿色)在美观上看起来可能更好(从数学上讲,将与不同内核进行的插值紧密地放在一起使它们看起来是一样的,这在数学上是件好事.)。因此,我的问题是,我是否可以在sns.jointplot中指定不同的内核,还是用第二个瞬间计算的另一个内核覆盖横向分布的唯一方法。
ax1 = sns.distplot(data[data.columns[j]])
sns.kdeplot(data[data.columns[j]], kernel= 'biw', ax = ax1)

发布于 2016-04-29 08:39:08
您可以为边际图设置不同的内核:
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 axisvertical=True允许您切换x和y轴(如果您更改了最高边距图,则不需要).
https://stackoverflow.com/questions/36933377
复制相似问题