如何用 sympy 绘制 x==2.5(vertical line)

Mik*_*liy 5 python plot sympy

我需要绘制一组方程:

x1 + 2 * x2 == 8
x1 + 2 * x2 == 10
x1 == 5.5
x2 == 2.5
Run Code Online (Sandbox Code Playgroud)

我正在尝试为此使用 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)
)
Run Code Online (Sandbox Code Playgroud)

结果是:

三个方程的图

前三个很容易,但现在我需要绘制 x2 == 2.5(x2 == 2.5 的垂直线)并且不知道如何做到这一点。

可能是 sympy 不是最好的解决方案吗?对python还有其他想法吗?

Sud*_*hra 3

您可以使用plot_implicit

>>> from sympy import Symbol, Eq, plot_implicit
>>> x2 = Symbol('x2')
>>> plot_implicit(Eq(x2, 2.5))
Run Code Online (Sandbox Code Playgroud)

阴谋