Python 来自字符串的图形函数
Python graph function from string
我正在尝试使用 matplotlib.pyplot 创建一个绘图器,并想绘制一个像字符串一样的函数
我的代码是:
import matplotlib.pyplot as mpl
import numpy as np
def plot2D(*args):
mpl.grid(1)
xAxis = np.arange(args[1],args[2],args[3])
def xfunction(x,input):
return eval(input)
print(xfunction(5,args[0]))
mpl.plot(xAxis,xfunction(xAxis,args[0]))
mpl.show()
plot2D("1/(x)",-1,2,0.1)
我想让它绘制函数 1/x 但它看起来像 this when it should look like this (desmos)。我是否将字符串转换为错误的函数,或者 matplotlib 甚至可以用于绘制这样的函数图形,还是我应该使用另一个库?我将如何绘制像 x**2 + y**2 = 1 这样的函数?或者像 sin(x!) ?
这样的函数
函数 1/x
存在一个内在问题:它没有在 0 中定义。现在,不幸的是,在您的代码中,范围内的值之一是 0,因此它把整个事情搞得一团糟.您所要做的就是更改最后一行代码以稍微移动范围,并增加步数以获得更准确的结果:plot2D("1/x",-1.01,2,0.02)
。这是情节:
如果你想消除中间那条讨厌的线,你必须更改代码以将图形分成两部分。
我正在尝试使用 matplotlib.pyplot 创建一个绘图器,并想绘制一个像字符串一样的函数
我的代码是:
import matplotlib.pyplot as mpl
import numpy as np
def plot2D(*args):
mpl.grid(1)
xAxis = np.arange(args[1],args[2],args[3])
def xfunction(x,input):
return eval(input)
print(xfunction(5,args[0]))
mpl.plot(xAxis,xfunction(xAxis,args[0]))
mpl.show()
plot2D("1/(x)",-1,2,0.1)
我想让它绘制函数 1/x 但它看起来像 this when it should look like this (desmos)。我是否将字符串转换为错误的函数,或者 matplotlib 甚至可以用于绘制这样的函数图形,还是我应该使用另一个库?我将如何绘制像 x**2 + y**2 = 1 这样的函数?或者像 sin(x!) ?
这样的函数函数 1/x
存在一个内在问题:它没有在 0 中定义。现在,不幸的是,在您的代码中,范围内的值之一是 0,因此它把整个事情搞得一团糟.您所要做的就是更改最后一行代码以稍微移动范围,并增加步数以获得更准确的结果:plot2D("1/x",-1.01,2,0.02)
。这是情节: