您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

python – 加权直方图

5b51 2022/1/14 8:21:30 python 字数 2717 阅读 518 来源 www.jb51.cc/python

我正在寻求从matplotlib迁移到plotly,但似乎情节上并没有与pandas良好的集成.例如,我正在尝试制作一个指定箱数的加权直方图:sns.distplot(df.X, bins=25, hist_kws={'weights':df.W.values},norm_hist=False,kde=False) 但我没有找到一个简单的方法来做到这一点

概述

我正在寻求从matplotlib迁移到plotly,但似乎情节上并没有与pandas良好的集成.例如,我正在尝试制作一个指定箱数的加权直方图:

sns.distplot(df.X,bins=25,hist_kws={'weights':df.W.values},norm_hist=False,kde=False)  

但我没有找到一个简单的方法来做到这一点.如何以简单的方式使用pandas.DataFrame从pandas.DataFrame中直接绘制数据的直方图?

我们可以构建一个看起来像你想要的占位符数据框:

# dataframe with bimodal distribution to clearly see weight differences.
import pandas as pd
from numpy.random import normal
import numpy as np

df =pd.DataFrame(
    {"X": np.concatenate((normal(5,1,5000),normal(10,5000))),"W": np.array([1] * 5000 + [3] * 5000)
    })

您已包含的seaborn调用适用于此数据:

# weighted histogram with seaborn
from matplotlib import pyplot as plt
import seaborn as sns

sns.distplot(df.X,kde=False)
plt.show()

我们可以看到,我们的任意1和3权重适用于每种分布模式.

enter image description here

通过plotly,您可以使用带有numpy的条形图对象

# with plotly,presuming you are authenticated
import plotly.plotly as py
import plotly.graph_objs as go

# compute weighted histogram with numpy
counts,bin_edges = np.histogram(df.X,weights=df.W.values)
data = [go.Bar(x=bin_edges,y=counts)]

py.plot(data,filename='bar-histogram')

您可能必须重新实现直方图的其他注记特征以适合您的用例,这些可能会带来更大的挑战,但情节内容本身在情节上很有效.

看到它呈现在这里https://plot.ly/~Jwely/24/#plot

总结

以上是编程之家为你收集整理的python – 加权直方图全部内容,希望文章能够帮你解决python – 加权直方图所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶