<p>您还可以使用<a href="https://docs.sympy.org/latest" rel="nofollow noreferrer">sympy</a>到<a href="https://docs.sympy.org/latest/modules/parsing.html" rel="nofollow noreferrer">convert</a>字符串中的表达式转换为方程,然后再转换为<a href="https://docs.sympy.org/latest/modules/plotting.html" rel="nofollow noreferrer">plot</a>。我省略了示例中的<code>-2</code>,因为这将导致一个非常空的绘图。Symphy的解析器支持特殊函数,以允许省略乘法(如<code>3x</code>),并将Python的xor函数(<code>^</code>)转换为幂函数</p>
<pre class="lang-py prettyprint-override"><code>from sympy import plot_implicit, Eq
from sympy.parsing.sympy_parser import parse_expr
from sympy.parsing.sympy_parser import standard_transformations, convert_xor, implicit_multiplication
string = "y^3-sqrt(sin(x^2))*2 = 3x"
transformations = (standard_transformations + (implicit_multiplication,) + (convert_xor,))
lhs = parse_expr(string.split('=')[0], transformations=transformations)
rhs = parse_expr(string.split('=')[1], transformations=transformations)
plot_implicit(Eq(lhs, rhs))
</code></pre>
<p><a href="https://i.stack.imgur.com/f35MN.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/f35MN.png" alt="sample plot"/></a></p>
<p>另一个例子:</p>
<pre class="lang-py prettyprint-override"><code>from sympy import plot_implicit, Eq, cos
from sympy.abc import x, y
plot_implicit(Eq(x/y, cos(y)), (x, -10, 10), (y, -10, 10))
</code></pre>
<p>请注意,如果不显式设置变量的范围,<code>plot_implicit</code>假定默认范围在-5和5之间</p>
<p><a href="https://i.stack.imgur.com/a4TIx.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/a4TIx.png" alt="another example"/></a></p>