Python matplotlib中的直方图未按预期工作
我有两个阵列:Python matplotlib中的直方图未按预期工作,python,matplotlib,histogram,Python,Matplotlib,Histogram,我有两个阵列: import numpy as np import pylab as pl x = np.array([-36., -34.95522388, -33.91044776, -32.86567164, -31.82089552, -30.7761194 , -29.73134328, -28.68656716, -27.64179104, -26.59701493, -25.55223881, -24.50746269, -23.46268657, -22.41
import numpy as np
import pylab as pl
x = np.array([-36., -34.95522388, -33.91044776, -32.86567164,
-31.82089552, -30.7761194 , -29.73134328, -28.68656716,
-27.64179104, -26.59701493, -25.55223881, -24.50746269,
-23.46268657, -22.41791045, -21.37313433, -20.32835821,
-19.28358209, -18.23880597, -17.19402985, -16.14925373,
-15.10447761, -14.05970149, -13.01492537, -11.97014925,
-10.92537313, -9.88059701, -8.8358209 , -7.79104478,
-6.74626866, -5.70149254, -4.65671642, -3.6119403 ,
-2.56716418, -1.52238806, -0.47761194, 0.56716418,
1.6119403 , 2.65671642, 3.70149254, 4.74626866,
5.79104478, 6.8358209 , 7.88059701, 8.92537313,
9.97014925, 11.01492537, 12.05970149, 13.10447761,
14.14925373, 15.19402985, 16.23880597, 17.28358209,
18.32835821, 19.37313433, 20.41791045, 21.46268657,
22.50746269, 23.55223881, 24.59701493, 25.64179104,
26.68656716, 27.73134328, 28.7761194 , 29.82089552,
30.86567164, 31.91044776, 32.95522388, 34. ])
y = np.array([ 28, 25, 30, 20, 32, 20, 10, 20, 9, 18, 10, 7, 7,
14, 10, 11, 4, 8, 7, 11, 3, 7, 3, 1, 4, 3,
1, 5, 1, 4, 1, 1, 1, 55, 2, 6, 2, 2, 5,
5, 5, 10, 10, 17, 26, 28, 30, 34, 103, 137, 84, 59,
55, 69, 59, 70, 72, 75, 66, 90, 79, 74, 62, 80, 59,
62, 36, 43])
x
和y
的大小相同。现在我想绘制一个直方图,x
表示x轴,y
表示y轴。我尝试以下代码:
pl.hist(y,x)
生成的图像如下所示:
在这个图中,最大值上升到7,这是没有意义的,因为在y
数组中有高达137的值。x
数组似乎工作正常,但我无法找出我的y
数组的错误
我在这里举了一个例子:
您使用了错误的功能。您应该像中一样使用pl.bar() hist()的作用是对向量中的数据进行计数,然后绘制这些计数的条形图。例如,如果您有
x=[1 3 2 5 5 2]
,则hist(x)将给出一个条形图,高度2位于位置1,高度2位于位置2,高度1位于位置3,高度0位于位置4,高度3位于位置5。可以说,您的数据已经“装箱”plt.hist
获取未绑定的数据,对其进行分类,并绘制直方图。您只需plt.bar
:
>>> plt.bar(x, y)
其中:
你的目标是什么?目前,您正在制作
y
值的直方图,其中x
值定义了您的箱子,对吗?它完全按照预期工作;)“直方图”计算存储箱(y
)中输入值(x
)的数量。这不是你想要的。哦,好吧,我可能混淆了这个概念