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