Python 如何使用matplotlib绘制非线性函数?

Python 如何使用matplotlib绘制非线性函数?,python,matplotlib,Python,Matplotlib,我想用matplotlib绘制一条通用的三次函数曲线。我想绘制由函数定义的曲线,例如:x^3+y^3+y^2+2xy^2=0。这可能吗?我的2美分: x^3+y^3+y^2+2xy^2=0 y^2=-x^3-y^3-2xy^2 y^2>0=>x^3-y^3-2xy^2>0=>x^3+y^3+2xy^2 x(x^2+2y^2)+y^3x(x^2+2y^2)(x^2+2y^2)y^3/x=> (x>0&&y我的2美分: x^3+y^3+y^2+2xy^2=0 y^2=-x^3-y^3-2xy^2 y

我想用matplotlib绘制一条通用的三次函数曲线。我想绘制由函数定义的曲线,例如:x^3+y^3+y^2+2xy^2=0。这可能吗?

我的2美分:
x^3+y^3+y^2+2xy^2=0
y^2=-x^3-y^3-2xy^2
y^2>0=>x^3-y^3-2xy^2>0=>x^3+y^3+2xy^2
x(x^2+2y^2)+y^3x(x^2+2y^2)(x^2+2y^2)y^3/x=> (x>0&&y我的2美分:
x^3+y^3+y^2+2xy^2=0
y^2=-x^3-y^3-2xy^2
y^2>0=>x^3-y^3-2xy^2>0=>x^3+y^3+2xy^2
x(x^2+2y^2)+y^3x(x^2+2y^2)(x^2+2y^2)y^3/x=>
(x>0&&y一个明显的方法是通过数值求解方程,找到满足关系的
(x,y)

from scipy import optimize
f=lambda x, y: (x**3+y**3+y**2+2*x*y*y-0)**2
y_range=linspace(-1, 1, 100)
x_range=[optimize.fmin(f,0,args=(y,), disp=0) for y in y_range]
xr=linspace(-1,1)
yr=linspace(-1,1)
X, Y=meshgrid(xr, yr)
Z=f(X, Y)
plt.plot(x_range, y_range, 'k')
plt.contourf(xr, yr, Z, levels=linspace(0,0.001,51), alpha=0.5)
plt.colorbar()

黑线就是您想要的。轮廓只是为了显示函数在0附近的行为。
optimize.fmin()
不是这里最有效的解算器,请保持简单


x
y
的绝对值较大时,您基本上是在绘制
x+0.4496y=0
,无需执行上述所有操作。

一个明显的方法是通过数值求解方程,找到
(x,y)
对满足关系

from scipy import optimize
f=lambda x, y: (x**3+y**3+y**2+2*x*y*y-0)**2
y_range=linspace(-1, 1, 100)
x_range=[optimize.fmin(f,0,args=(y,), disp=0) for y in y_range]
xr=linspace(-1,1)
yr=linspace(-1,1)
X, Y=meshgrid(xr, yr)
Z=f(X, Y)
plt.plot(x_range, y_range, 'k')
plt.contourf(xr, yr, Z, levels=linspace(0,0.001,51), alpha=0.5)
plt.colorbar()

黑线就是您想要的。轮廓只是为了显示函数在0附近的行为。
optimize.fmin()
不是这里最有效的解算器,请保持简单


x
y
的绝对值很大时,您基本上是在绘制
x+0.4496y=0
,您不需要执行上述所有操作。

以下是帮助我的内容^!