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

如何使用random.expovariate()PYTHON绘制直方图,python,random,statistics,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)

我有一个问题,显示顾客以每小时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%这是我将如何显示图表,我已经研究了它,但没有找到一个明确的答案任何地方!
希望您能提供帮助

以下是一些帮助您入门的内容:

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()
你的主要问题是:

  • 您调用的是
    np.random.expvariate()
    而不是
    random.expvariate()

  • random.expVariate()
    接受1个参数,而不是2个参数

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


  • 谢谢只是为了比较一下,如果使用泊松分布,您将如何处理相同的问题?我对
    python Poisson
    进行了一次简单的搜索。寻找,你就会发现!