我想使用以下代码在同一图中绘制 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))

我看到的只是第一个图,而我希望在同一张图片中包含两条曲线,如果可能的话,也可能带有网格。
有任何想法吗?

注意:使用 matplotlib 很容易,但我找不到函数 syp.plot_implicit 的任何具体示例

最佳答案

如果您这样做,它可能会起作用:

>>> curve_1.extend(curve_2)
>>> curve_1.show()

然而,混合隐式图可能尚未实现。

请注意,您的 curve_1curve_2 不是 sympy 认为的“单曲线”,即 Series 实例,而是“多条曲线的集合”,即 Plot 实例。

您还可以从 curve_1._backend.fig 和其他 _backend 属性中提取 matplotlib 对象。

总之,有一个很好的 API 可以做你想做的事,但它背后的方法可能还没有完成。

关于python - 在同一图中绘制 2 个或更多函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19932072/

10-11 04:37