python - 在 python/pyplot 中绘制任意二维函数,如 Matlab 的 Ezplot

标签 python matlab matplotlib

我正在寻找一种方法来生成类似于 ezplot 在 MATLAB 中的工作方式的绘图,因为我可以输入:

ezplot('x^2 + y^2 = y + 5')

并准备好图表以用于任意函数。我只担心我同时拥有 x 和 y 的情况。

我只有这个功能,如果没有必要,我真的宁愿不尝试计算某个给定 x 范围的所有 y 值。

我见过的几个建议的解决方案要么是关于决策边界(这不是。没有测试数据或任何东西,只是一个任意函数),要么都是针对已经定义为 y = some x equation 的函数真的帮了我。

如果有一种很好的方法来模仿 Wolfram|Alpha 的求解功能(“求解 x^2 + y^2 = y + 5 for y”,我会得到两个函数,然后我可以分别绘制图表) ,而是更喜欢 ezplot,因为它在 MATLAB 中或多或少是即时的。

最佳答案

我认为你可以为此使用 sympy 绘图和 parse_expr 对于你的示例,这将按如下方式工作

from sympy.plotting import plot_implicit
from sympy.parsing.sympy_parser import parse_expr

def ezplot(s):
    #Parse doesn't parse = sign so split
    lhs, rhs = s.replace("^","**").split("=")
    eqn_lhs = parse_expr(lhs)
    eqn_rhs = parse_expr(rhs)

    plot_implicit(eqn_lhs-eqn_rhs)

ezplot('x^2 + y^2 = y + 5')

这可以根据需要做成通用

关于python - 在 python/pyplot 中绘制任意二维函数,如 Matlab 的 Ezplot,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34638040/

相关文章:

python - SciPy 中线性方程的求解器时间

python - 给出一个百分比(5%)来随机排列一个 numpy 数组的值

java - 使用 Java 命令 Matlab

matlab - 在 MATLAB 中查找矩阵的 NaN 边界

python - 如何在每个波段/箱中以数据百分比作为标签绘制正态分布?

Python:在动画中在plot_surface()上绘制的网格线

Python PyCharm 公仔包! plt.figure\plot 在 Debug模式下停止工作,但在 Python 控制台上工作

python - 使用 lxml 和 requests 包抓取 IMDb 评论页面

python - 如何向 Django(1.10) 管理添加更改语言下拉列表?

r - R 和 MATLAB 之间十六进制 double 表示的差异