是否有直接方法使用matplotlib绘制阶乘函数?我想绘制x ^ 5和45n!一起。

我尝试使用

import matplotlib.pyplot as plt
import numpy as np
import math
x = np.linspace(0, 10, 1000)
plt.plot(x, x**5)
plt.plot(x, 45*math.factorial(x))


但是阶乘部分没有图形。有任何想法吗?

最佳答案

关于您的代码,有两件事:


我认为math函数仅接受标量(intfloat等),而不接受列表或numpy数组。
阶乘函数仅针对(正)整数进行定义,而不针对浮点数进行定义,例如0.5


我认为您正在寻找gamma function,该函数将阶乘函数扩展为实数:

from scipy.special import gamma

x = np.linspace(0, 10, 1000)
plt.plot(x,gamma(x), label='Factorial')
plt.plot(x, x**5, label='$x^5$')

xx = np.arange(11)
plt.scatter(xx, gamma(xx))
plt.legend()


输出:
python - matplotlib和阶乘函数-LMLPHP

10-08 08:14