有没有办法在numpy.hist中返回相同长度的数组?

时间:2013-07-31 09:06:50

标签: python arrays numpy plot histogram

我正在尝试在python中创建直方图,使用一些自定义值对y轴值进行标准化。为此,我想这样做:

import numpy as np
import matplotlib.pyplot as plt

data = np.loadtxt('foo.bar')
fig = plt.figure()
ax = fig.add_subplot(111)

hist=np.histogram(data, bins=(1.0, 1.5 ,2.0,2.5,3.0))
x=[hist[0]*5,hist[1]]
ax.plot(x[0], x[1], 'o')

但当然,最后一行给出了:

ValueError: x and y must have same first dimension

有没有办法强制np.hist为x [0]和x [1]数组提供相同数量的元素,例如删除其中一个元素的第一个或最后一个元素?

2 个答案:

答案 0 :(得分:3)

hist [1]包含您制作直方图的限制。我猜你可能想要获得这些间隔的中心,例如:

x = [hist[0], 0.5*(hist[1][1:]+hist[1][:-1])]

然后情节应该没问题,对吧?

答案 1 :(得分:0)

我认为这取决于您的数据来源。

尝试将数据加载为numpy数组,并在传递到直方图函数之前自己选择元素范围。

e.g。

dataForHistogram = data[0:100][0:100]   # Assuming your data is in this kind of structure.