是否有直接方法使用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
函数仅接受标量(int
,float
等),而不接受列表或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()
输出: