如何用sympy绘制x==2.5的垂直线

5 投票
1 回答
4845 浏览
提问于 2025-04-18 09:11

我需要绘制一组方程:

x1 + 2 * x2 == 8
x1 + 2 * x2 == 10
x1 == 5.5
x2 == 2.5

我正在尝试使用sympy来实现这个:

from sympy import *
x1, x2 = symbols('x1 x2')
plot(
    solve(Eq(x1 + 2 * x2, 8), x1)[0], # x1 + 2*x2 <= 8
    solve(Eq(x1 + 2 * x2, 10), x1)[0], # x1 + 2*x2 <= 10
    5.5, # x1 <= 5.5
    Eq(x2, 2.5), # x2 <= 2.5 !<< This does not work as expected
    (x2, -2, 10)
)

结果是:

三条方程的图

前面三个方程的绘制相对简单,但现在我需要绘制x2 == 2.5(这是一条竖线,表示x2等于2.5),我不知道该怎么做。

也许sympy并不是最好的解决方案?有没有其他的Python方法可以尝试?

1 个回答

3

你可以使用 plot_implicit 这个函数。

>>> from sympy import Symbol, Eq, plot_implicit
>>> x2 = Symbol('x2')
>>> plot_implicit(Eq(x2, 2.5))

图示

撰写回答