gpt4 book ai didi

python - 如何将权重参数传递给 seaborn 的 jointplot() 或底层的 kdeplot?

转载 作者:太空狗 更新时间:2023-10-30 01:39:03 25 4
gpt4 key购买 nike

我尝试使用以下代码与 seaborn 创建联合图:

import seaborn as sns 
import pandas as pd
import numpy as np
import matplotlib.pylab as plt

testdata = pd.DataFrame(np.array([[100, 1, 3], [5, 2, 6], [25, 3, -4]]), index=['A', 'B', 'C'], columns=['counts', 'X', 'Y'])
counts = testdata['counts'].values
sns.jointplot('X', 'Y', data=testdata, kind='kde', joint_kws={'weights':counts})
plt.savefig('test.png')

现在 joint_kws 不会引发错误,但权重确实没有被考虑在内,如图中所示:

我还尝试用 JointGrid 来做到这一点,将权重传递给边际分布:

g = sns.JointGrid('X', 'Y', data=testdata)
x = testdata['X'].values
y = testdata['Y'].values
g.ax_marg_x.hist(x, bins=np.arange(-10,10), weights=counts)
g.ax_marg_y.hist(y, bins=np.arange(-10,10), weights=counts, orientation='horizontal')
g.plot_marginals(sns.distplot)
g.plot_join(sns.kdeplot, joint_kws={'weights':counts})
plt.savefig('test.png')

但这只适用于边际分布,而联合图仍然没有加权:

有人知道怎么做吗?

最佳答案

不幸的是,这似乎是不可能的。

a feature request于 2015 年 12 月提交,但因无法修复而关闭。

这个 StackOverflow 问题中也讨论了它:weights option for seaborn distplot?

关于python - 如何将权重参数传递给 seaborn 的 jointplot() 或底层的 kdeplot?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30344568/

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