如何使用random.expovariate()PYTHON绘制直方图

时间:2013-04-04 12:11:30

标签: python random statistics

我有一个问题,它显示客户以每小时7的速度进入酒吧,问题表明我需要使用random.expovariate()并生成显示100个到达间隔时间的直方图。 到目前为止我有这个

import numpy as np
from matplotlib import pyplot as plt
import random

def customers():    
    x=np.random.expovariate(7,100)                                                                                                                                
    plt.hist(x,100)
    plt.axis([-0,100,0,100])
    plt.show()
    return True

def main():
    global history
    print(customers()) 

if __name__ == "__main__":
    main()

我收到错误

AttributeError: 'module' object has no attribute 'expovariate'

此外,我不是100%这是我将如何显示图表,我已经研究过它,并没有在任何地方找到一个明确的答案! 希望你能帮忙

1 个答案:

答案 0 :(得分:1)

这是让你入门的东西:

import numpy as np
from matplotlib import pyplot as plt
import random

def customers():
    x = [random.expovariate(7) for r in xrange(100)]                   
    plt.hist(x,10)
    plt.show()
    return True

def main():
    global history
    print(customers()) 

if __name__ == "__main__":
    main()

您的主要问题是:

  1. 您拨打的是np.random.expovariate()而不是random.expovariate()

  2. random.expovariate()需要1个参数而不是2个

  3. random.expovariate()只生成一个数字,以创建您需要多个的直方图。在上面我创建了一个expovariate随机数列表。