改变颜色隐含的情节

时间:2014-01-29 11:34:07

标签: python plot sympy

我有以下代码:

import sympy as syp


x, y = syp.symbols('x, y')


Equation_1 = - 2*x + y**2 - 5
Equation_2 = x**3 + syp.sin(y) - 10


syp.plot_implicit(syp.Or(syp.Eq(Equation_1, 0), syp.Eq(Equation_2, 0)), (x, -50, 50), (y, -50, 50))

提供了这张图片:

enter image description here

你知道任何可以用来改变第二条曲线颜色的黑客吗?根据Sympy的documentation,我认为这不是直接可能的。

2 个答案:

答案 0 :(得分:6)

似乎当前没有实现将任何颜色参数传递给plot_implicit函数。 无论您绘制多少函数,都是如此。 我怀疑可以添加此功能,但目前还没有。

另一方面,如果您只绘制线条,则可以这样做。 方法如下:

import sympy as sy
x = sy.symbols('x')
# Make two plots with different colors.
p1 = sy.plot(x**2, (x, -1, 1), show=False, line_color='b')
p2 = sy.plot(x**3, (x, -1, 1), show=False, line_color='r')
# Make the second one a part of the first one.
p1.extend(p2)
# Display the modified plot object.
p1.show()

A plot of two functions made using SymPy

答案 1 :(得分:1)

这是你的hack,Sympy .extend()对象的Plot方法

import sympy as syp
x, y = syp.symbols('x, y')

Eq0 = - 2*x + y**2 - 5
Eq1 = x**3 + syp.sin(y) - 10

p0 = syp.plot_implicit(Eq0, (x, -50, 50), (y, -50, 50), show=False)
p1 = syp.plot_implicit(Eq1, (x, -50, 50), (y, -50, 50), show=False, line_color='r')
p0.extend(p1)
p0.show()

enter image description here