matplotlib 和阶乘函数
matplotlib and the factorial function
有没有直接使用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()
输出:
有没有直接使用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()
输出: