5

我正在尝试在 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] 数组提供相同数量的元素,例如通过删除其中一个的第一个或最后一个元素?

4

2 回答 2

6

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

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

然后剧情应该没问题吧?

于 2013-07-31T09:19:56.090 回答
0

我想这取决于您的数据源。

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

例如

dataForHistogram = data[0:100][0:100]   # Assuming your data is in this kind of structure.
于 2013-07-31T09:17:27.483 回答