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)。这是情节: 如果你想消除中间那条讨厌的线,你必须更改代码以将图形分成两部分。