知道方程式,用python 2.7绘制一个椭圆

时间:2017-12-19 11:21:06

标签: python-2.7 numpy matplotlib plot ellipse

我有这个等式,它定义了一个椭圆。

7.91x^2 + -0.213xy + 5.46y^2 -0.031x -0.0896y = 1

一般形式:Ax^2 + Bxy + Cy^2 + Dx +Ey = 1

我正在使用python 2.7 - pythonxy

当然,我尝试通过尝试解决点x和y的数组,但它不起作用。我在下面的代码中使用了来自this question的方法,但它没有显示所需的椭圆。

import numpy as np
import matplotlib.pyplot as plt

z = -np.linspace(-0.5,+0.5,1000)
x = np.linspace(-0.5,+0.5,1000)


x,z = np.meshgrid(x,z)

Z = -1 + 5.46*z**2
X = 7.91*x**2


plt.contour(x,z,(X+Z),[0])
plt.xlim([-0.6,0.6])
plt.ylim([-0.6,+0.6)

1 个答案:

答案 0 :(得分:1)

您显示的代码不代表椭圆的等式。有点难以确定你在该代码中究竟尝试了什么,但这里的方法当然与linked question的答案完全相同,即用网格网格计算方程式的左边并将右侧的级别显示为contour行。

import numpy as np
import matplotlib.pyplot as plt

x = -np.linspace(-0.5,+0.5,1000)
y = np.linspace(-0.5,+0.5,1000)


X,Y = np.meshgrid(x,y)

#equation: 7.91x^2 + -0.213xy + 5.46y^2 -0.031x -0.0896y = 1
eqn = 7.91* X**2 -0.213*X*Y + 5.46*Y**2 -0.031*X - 0.0896*Y
Z = 1

plt.contour(X,Y,eqn,[Z])
plt.xlim([-0.6,0.6])
plt.ylim([-0.6,+0.6])
plt.show()

enter image description here