python - 来自字符串的 Python 图形函数
问题描述
我正在尝试使用 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,但是当它看起来像这样(desmos)时它看起来像这样。我是否将字符串转换为错误的函数,或者 matplotlib 甚至可以用于绘制这样的函数,还是应该使用另一个库?我将如何绘制像 x**2 + y**2 = 1 这样的函数?或者像 sin(x!) 这样的函数?
解决方案
该函数存在一个内在问题1/x
:它没有在 0 中定义。现在,在您的代码中,不幸的是,范围内的值之一是 0,因此它会严重破坏整个事情。您所要做的就是更改最后一行代码以稍微移动范围,并增加步数以获得更准确的结果:plot2D("1/x",-1.01,2,0.02)
. 这是情节:
如果你想消除中间的讨厌的线,你必须更改代码以将图形分成两部分。
推荐阅读
- java - 不兼容的 Java 版本。Eclipse 在 0 下运行
- javascript - 如何获取具有相同条件的值数组
- javascript - 检查页面是否已经打开
- sql - 用条件连接三个表的 SQL 查询
- javascript - 切换功能不起作用 div 元素不出现
- r - 跨多列的每一行的最小(或最大值)值
- java - 使用 Java 驱动程序解析 Mongo DBRef
- java - 创建错误类,将其移回原始位置
- kubernetes - 如何访问和更改 Kubernetes 中的默认调度程序代码。没有自定义调度程序
- c# - 如何在 WPF 应用程序中将 DataGrid 导出为 XML?