【发布时间】:2016-05-04 06:48:09
【问题描述】:
我尝试搜索类似的东西,我能找到的最接近的东西是this,它帮助我提取和操作数据,但现在我不知道如何重新绘制直方图。我有一些电压数组,我首先绘制了这些电压出现的直方图。我想改为制作每小时事件的直方图(因此正常直方图的 y 轴除以我获取数据的小时数),然后使用操纵的 y 数据。
我有一个数组,其中包含每小时的事件数(由来自 pyplot.hist 的原始 y 轴除以获取数据的小时数组成)和直方图中的 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' 全部错误。
我觉得必须有一种更简单的方法来做到这一点,而不是手动重新绘制我自己的直方图。
提前致谢,如果我遗漏了一些明显的东西,我真的很抱歉。
问题,在我的示例代码和我的原始数据的输出中说明如下:
上图:代码 sn-p 输出。
下图:我的实际数据。
【问题讨论】:
标签: python numpy matplotlib histogram