python 直方图每个bin中的值_每个bin中y值的python直方图与相同的数据数量(x)

我得到了2列数据框(体积和价格),并且我想根据volume列创建20个bin,并且数据量相等在每个垃圾箱里。每个bin中y值的python直方图与相同的数据数量(x)

I.e.如果我得到了音量= [1,6,8,2,6,9,3,6]和4个分档,我想将数据剪切到第一个分档:1:2,2:3:6,3:6:如图8所示,第四:8:9

然后绘制平均相应y值的直方图

我的数据:

df = pd.DataFrame{'Volume_norm' : [0.92, 2.31, 0.92, 0.018, 0.0454, 0.43, 0.43,0.943,0.543,0.543,0.43] , 'Price' : [2, 4, 5, 1, 5, 1, 2, 4, 2, 3, 6]}

U7Yqrm.png

我的代码:

x = sorted(FilteredTrade_buy['Volume_norm'])

bins=x[0::int(len(x)/50)]

n, bins, patches = plt.hist(x, bins=bins)

plt.show()

这只给我x(音量)的总和而不是平均y的价格

===============更新代码=========== ===

df = pd.DataFrame({'Volume_norm' : [0.92,2.31,0.92,0.018,0.0454,0.43,0.43,0.943,0.543,0.543,0.43],

'Price' : [2,4,5,1,5,1,2,4,2,3,6]})

x = df['Volume_norm']

y = df['Price']

nbins = 5

binsize = x.size // nbins

indices = x.argsort()

means = np.zeros((nbins,))

xaxis = np.zeros((nbins,))

for k in range(nbins):

xaxis[k] = x[indices[i * binsize : (i + 1) * binsize]].mean()

for i in range(nbins):

means[i] = y[indices[i * binsize : (i + 1) * binsize]].mean()

plt.loglog(xaxis,means,'r-')

plt.show()

但x轴返回我:阵列([0.9315,0.9315,0.9315,0.9315,0.9315])

此外,才有可能使用 '计数器' 计数数据的数目在每个区间?

2017-09-26

bing

+0

请问您可以将文本添加为​​文本吗?从图片复制数据并不容易。 –

+0

等一下,所以你想要用'x'填充直方图的高度,以反映平均的'y'值?这根本不是直方图,所以你不应该使用'hist'函数,它假设“直方图”的标准定义。也许只需计算'y'平均值并用plt.plot()调用 –

+0

编辑的问题(日期= df)绘制数据。是的,我试图在plt.plot中的数据,但它的结果是一些边界/边缘是相同的,因此'切'功能不起作用 –

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值