python - 如何在 Python 中绘制函数 ax^2+bxy+cy^2+d=0?
问题描述
我有一个形式为ax^2+bxy+cy^2+d=0
. 这个可以写成f(x,y) = 0
。我尝试编写代码来在 x,y 平面上绘制函数,如下所示
import matplotlib.pyplot as plt
import numpy as np
def f(x,y):
return 0.01*x**2+0.008*x*y-0.013*y**2+0.15*x+0.003*y+1.0097
x = np.arange(-10.0,10.0,0.1)
y = np.arange(-10.0,10.0,0.1)
plt.plot(x, f(x, y));
但我只得到了我的函数的一维图。f(x,y)
我想要取值的图表0
。
解决方案
要将您的函数与 2D 坐标一起使用,您可以使用创建的网格x
和y
值来评估它np.meshgrid
。要将图形绘制为 2D 函数,您可以使用plt.contour
并将级别设置为您感兴趣的函数值
import numpy as np
import matplotlib.pyplot as plt
def f(x,y):
return 0.01*x**2+0.008*x*y-0.013*y**2+0.15*x+0.003*y+1.0097
x = np.arange(-10.0,10.0,0.1)
y = np.arange(-10.0,10.0,0.1)
X, Y = np.meshgrid(x,y)
plt.contour(x, y, f(X, Y), [0]);
输出