我想用下面的代码在同一图中绘制2条曲线:
import sympy as syp
x, y = syp.symbols('x, y')
my_function = syp.exp(-(x-2)**2)*syp.exp(-(y-3)**2) + 2*syp.exp(-(x+1)**2)*syp.exp(-(y-1)**2)
gradient_1 = syp.diff(my_function, x)
gradient_2 = syp.diff(my_function, y)
curve_1 = syp.plot_implicit(syp.Eq(gradient_1, 0))
curve_2 = syp.plot_implicit(syp.Eq(gradient_2, 0))
Run Code Online (Sandbox Code Playgroud)
我所看到的只是第一个情节,而我想让两条曲线在同一张图片中,如果可能的话也可以使用网格.有任何想法吗?
注意:使用matplotlib非常简单,但我找不到该函数的任何具体示例 syp.plot_implicit
另一种可能更有效的方法是使用同时计算两者 Or
plot_implicit(Or(Eq(gradient_1, 0), Eq(gradient_2, 0)))
Run Code Online (Sandbox Code Playgroud)
如果你这样做,它可能会起作用:
>>> curve_1.extend(curve_2)
>>> curve_1.show()
Run Code Online (Sandbox Code Playgroud)
然而,混合隐式绘图可能尚未实现。
请注意,您的curve_1和curve_2不是 sympy 认为的“单曲线”(即Series实例),而是“多条曲线的集合”(即Plot实例)。
curve_1._backend.fig您还可以从和其他属性中提取 matplotlib 对象_backend。
总之,有一个很好的 API 可以做你想做的事情,但可能它背后的方法还没有完成。
| 归档时间: |
|
| 查看次数: |
4831 次 |
| 最近记录: |