在python中绘制泊松分布图

时间:2018-07-09 09:57:36

标签: python matplotlib plot graphing

我想使用Matplotlib在Python中绘制Poisson函数。该函数是(exp(-5)* 5 ^ x)/ factorial(x)

import numpy as np
import math
import matplotlib.pyplot as plt

t = np.arange(0, 20, 0.1)
d = []

for i in t:
    p = pow(5,i)
    q = p/math.factorial(i)
    d.append(q)

plt.plot( t, np.exp(-5)*d, 'bs')
plt.show()

但是我得到这个错误。“只有size ^ 1数组可以转换为Python标量”。如何绘制此图?预先感谢

2 个答案:

答案 0 :(得分:2)

我认为您的功能不正确:exp(-5)

import numpy as np
import matplotlib.pyplot as plt
from scipy.misc import factorial

t = np.arange(0, 20, 0.1)
d = np.exp(-5)*np.power(5, t)/factorial(t)

plt.plot(t, d, 'bs')
plt.show()

poisson distribution

答案 1 :(得分:0)

直接的问题可能是您在循环中使用了“ t”而不是“ i”。但是,您可能要避免将python列表与numpy数组混合使用。您可以这样做,

import numpy as np
import scipy.misc
import math
import matplotlib.pyplot as plt

t = np.arange(0, 20, 0.1)
x = np.power(t, 5)
y = scipy.misc.factorial(t)

plt.plot( t, x / y, 'bs')
plt.show()