通过参数将方程传递给函数



我正在编写一个程序,用户输入一个数学方程(例如x^2 + 2x + 2),函数plotFunction将使用matplotlib在图上绘制它。当我输入一个参数,如"x2"它返回错误:ValueError:非法格式字符串"x2";两个标记符号

import matplotlib.pyplot as plt
import numpy as np
class Plotter:
def __init__(self):
pass


def plotFunction(self, func):     
x = np.arange(-100, 100)

y = func
plt.plot(x, y)
plt.show()
p1 = Plotter()
p1.plotFunction("x**2")

这不是完全理想的,但是,这是我现在想到的工作。进口matplotlib。Pyplot为plt

def plot_func():
three = float(input("X ** 3:n"))
two = float(input("X ** 2:n"))
one = float(input("X:n"))
b = float(input("B:n"))
n = -10
x = []
y = []
while n <= 10:
x.append(n)
y.append( (three * n) ** 3 + (two * n) ** 2 + (one * n) + b)
n += 1
return x, y
x, y = plot_func()
plt.scatter(x, y)
plt.show()

我基本上只是把不同的部分分开,它将适用于任何函数,直到x ** 3,当然你可以添加更多。只要让x ** 3 = 0如果只有x ** 2函数。同样,这也不理想,但在你找到更好的方法之前,它会起作用的。

最新更新