我试图制作一个简单的绘图功能plot2d
,
def plot2d(xmin,xmax,func):
x=np.linspace(xmin, xmax, num=50)
plt.plot(x,func)
plt.show()
这个想法是你输入变量' func'就x而言,如x ** 2。
编辑* 这是错误:
>>> plot2d(-10,10, x**2)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'x' is not defined
编辑** 我认为问题在于,当你第一次调用函数时,linspace x还没有被创建。这很有效:
import numpy as np
import matplotlib.pyplot as plt
def plot2d(xmin,xmax):
x=np.linspace(xmin, xmax, num=50)
func=input('Define fucntion: ')
plt.plot(x,func)
plt.show()
答案 0 :(得分:4)
您可能想了解lambda
。更改代码就足够了:
import numpy as np
import matplotlib.pyplot as plt
def plot2d(xmin,xmax,func):
x=np.linspace(xmin, xmax, num=50)
plt.plot(x,func(x)) #func -> func(x)
plt.show()
#pass a unnamed lambda as a param:
plot2d(-10, 10, lambda x: x*x)
答案 1 :(得分:0)
from pylab import *
def plot2d(xmin, xmax, func):
x=np.linspace(xmin,xmax,num=50)
y=func(x)
plot(x,y)
show()
def func(x):
y=x**2
return y
plot2d(0,10,func)
结果: