gpt4 book ai didi

Python 直方图 : Manually normalising counts and re-plotting as histogram

转载 作者:太空狗 更新时间:2023-10-30 00:10:07 30 4
gpt4 key购买 nike

我试着搜索类似的东西,我能找到的最接近的东西是 this这帮助我提取和操作数据,但现在我不知道如何重新绘制直方图。我有一些电压数组,我首先绘制了这些电压出现的直方图。我想改为制作每小时事件的直方图(因此正常直方图的 y 轴除以我获取数据的小时数),然后使用操纵的 y 重新绘制直方图。 数据。

我有一个数组,其中包含每小时的事件数(由 y 的原始 pyplot.hist 轴除以采集数据的小时数组成),以及直方图中的 bin。我使用以下代码(取自上面链接的答案)组成了该数组:

import numpy
import matplotlib.pyplot as pyplot
mydata = numpy.random.normal(-15, 1, 500) # this seems to have to be 'uneven' on either side of 0, otherwise the code looks fine. FYI, my actual data is all positive
pyplot.figure(1)
hist1 = pyplot.hist(mydata, bins=50, alpha=0.5, label='set 1', color='red')
hist1_flux = [hist1[0]/5.0, 0.5*(hist1[1][1:]+hist1[1][:-1])]
pyplot.figure(2)
pyplot.bar(hist1_flux[1], hist1_flux[0])

这段代码与我的代码并不完全匹配;我的数据由 1000 个数组组成,每个数组包含 1000 个数据点(电压)。我已经制作了直方图,它给出了给定电压范围(或 bin 宽度)的出现次数。我想要做的就是重新绘制一个具有相同原始 bin 宽度的每小时事件数的直方图(因此 yaxis 直方图的/5 小时) , 但是当我划分 hist1[0]/5 并按上述方式重新绘制,'bin width' 都是错误的。

我觉得必须有一种更简单的方法来执行此操作,而不是手动重新绘制我自己的直方图。

提前致谢,如果我错过了一些明显的事情,我真的很抱歉。

我的示例代码和原始数据的输出中说明的问题如下:

上图:代码片段输出。
下图:我的实际数据。 Upper plots: code snippet output. Lower plots: My actual data.

最佳答案

这是因为 bar 函数有一个参数 width,默认情况下是 0.8 (plt.bar(left, height , width=0.8, bottom=None, hold=None, **kwargs)), 所以你需要把它改成两根柱子之间的距离:

pyplot.bar(hist1_flux[1], hist1_flux[0],
width=hist1_flux[1][1] - hist1_flux[1][0])

关于Python 直方图 : Manually normalising counts and re-plotting as histogram,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35035310/

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