简而言之,当我的数据加权时,对于分布式图形(直方图或kde),我的最佳选择是什么?
df = pd.DataFrame({ 'x':[1,2,3,4], 'wt':[7,5,3,1] })
df.x.plot(kind='hist',weights=df.wt.values)
这工作正常但是seaborn不会接受权重kwarg,即
sns.distplot( df.x, bins=4, # doesn't work like this
weights=df.wt.values ) # or with kde=False added
如果kde能接受重量也不错,但是大熊猫和海鸟似乎都不允许它.
我知道btw数据可以扩展以伪造加权,这在这里很容易,但对我的数据或数千的权重的真实数据没有多大用处,所以我不是在寻找像这样的解决方法.
无论如何,就是这样.我只是试图找出除了基本的熊猫直方图之外我可以用加权数据做什么(如果有的话).我还没有骗过散景,但欢迎散景建议.
解决方法:
您必须了解seaborn使用pandas使用的非常matplotlib绘图功能.
正如documentation所述,sns.distplot不接受权重参数,但它确实需要一个hist_kws参数,该参数将被发送到对plt.hist的底层调用.因此,这应该做你想要的:
sns.distplot(df.x, bins=4, hist_kws={'weights':df.wt.values})