繁体   English   中英

在同一图表中绘制2个或更多功能

[英]Plotting 2 or more functions in the same graph

我想用下面的代码在同一图中绘制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任何具体示例

另一种可能更有效的方法是使用Or同时计算两者

plot_implicit(Or(Eq(gradient_1, 0), Eq(gradient_2, 0)))

如果你这样做可能会有效:

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

但是,混合隐式图可能尚未实现。

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

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

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

其他方式:

curve_1.append(curve_2[0]) curve_1.show()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM