合并matplotlib图和sympy图合二为一

ecfsfe2w  于 2023-04-21  发布在  其他
关注(0)|答案(1)|浏览(103)

我试图绘制不等式函数并绘制这个不等式连接的点,我使用了sympy.plot来绘制区域,但我不能在sympy中绘制点,所以我决定使用Matplotlib,但我的问题是我不能将两者结合起来,我知道sympy使用Matplotlib进行绘图,但它不起作用。我真的很感激你的帮助(如果有什么写错了,我的英语不是我最好的语言,很抱歉)
我尝试了.extend或append,但它不起作用,chatgpt说plot_point存在,但sympy没有这个模块,我有另一个matplotlib代码,但我喜欢sympy用一条线绘制不等式。

from sympy import *
x1 = Symbol('x')
x2 = Symbol('x2')
from matplotlib import pyplot as plt

import sympy as sp

x = sp.Symbol('x')
y = sp.Symbol('y')

Funcion = 30000*x + 50000*y

x_vals = [0, 4, 0, 4, 2]
y_vals = [0, 0, 6, 3, 6]
Lista_Inecuaciones = [x>=0,y>=0, x<=4, y<=6, 3*x+2*y<=18]

#Grafica puntos en matplotlib
fig, ax = plt.subplots()
puntos = ax.scatter(x_vals, y_vals, )

#combinacion para graficar en sympy
Lista_Combianda_inecuaciones = And(*Lista_Inecuaciones)
print(Lista_Combianda_inecuaciones)

#graficas
plot1 = plot_implicit(Lista_Combianda_inecuaciones, (x, -1, 10), (y, -1, 10), show=False)
plot2 = plot_implicit(sympify(Funcion), line_color="red", show=False)
plot1.extend(plot2)
#plot1.extend(puntos) #linea que lanza error, line that throws error
plot1.show()
omtl5h9j

omtl5h9j1#

Sympy的plot_implicit接受一个未记录的关键字参数markers。在此代码块中,我将使用此关键字参数添加点,指定使用红色和圆形形状:

plot1 = plot_implicit(Lista_Combianda_inecuaciones, (x, -1, 10), (y, -1, 10),
                      show=False, markers=[{"args": [x_vals, y_vals, "ro"], }])
plot2 = plot_implicit(sympify(Funcion), line_color="red", show=False)
plot1.extend(plot2)
plot1.show()

相关问题