我试图绘制一条正弦曲线的直方图,如下所示
import numpy as np
import matplotlib.mlab as mlab
import matplotlib.pyplot as plt
dt=0.01 #delta t
T_upper=100. #time upper limit
t=np.arange(0.,T_upper+dt,dt) #time
#print t[-1]
a=2. #wave amplitude
T=2. #wave period
phi=np.pi/2 #phase
eta=a*np.sin(2*np.pi/T*t+phi)
#plt.plot(t,eta)
plt.hist(eta,normed=True,bins=20,color='blue',edgecolor='black',linewidth=1)
plt.ylabel('Probability')
plt.xlim(eta.min()*1.25,eta.max()*1.25)
plt.xticks([-2,-1,0,1,2])
plt.show()
以下是我得到的 enter image description here
可以看出,箱子与它们的值不一致。我想要的是让箱子位于其值的中心,例如在min,-2和max 2处。
我尝试使用bins = np.arange(2)-0.5,它对我不起作用,我认为是因为这个直方图的间隔不是整数,但我不知道如何解决它,可以有人帮忙,提前谢谢。