如何在Python中根据椭圆的一般方程绘制椭圆

Mar*_*cus 5 python matplotlib

我知道matplotlib可以根据椭圆的中心、半长轴长度、半短轴长度以及x轴和长轴之间的角度来绘制椭圆。但是有没有简单的方法可以像Matlab一样根据椭圆的一般方程绘制椭圆:

ezplot('3*x^2+2*x*y+4*y^2 = 5')
Run Code Online (Sandbox Code Playgroud)

我找到了一种从通用公式计算中心、半长轴长度、半短轴长度以及x轴与长轴之间的角度的方法。这是网站: 链接。我使用这个方法并编写一个函数来计算参数。因为我通过绘制椭圆来处理数据。实验数据给了我椭圆的一般方程。我会循环多次(例如,500)并在单个图表上绘制 500 个椭圆。如果你每次都这样做所以我在寻找python是否提供了一种直接从椭圆的一般方程绘制椭圆的方法,而不是每次都计算参数。

谢谢!

Joh*_*anC 6

使用sympy,您只需执行以下操作:

from sympy import plot_implicit, Eq
from sympy.abc import x, y

plot_implicit (Eq(3*x**2+2*x*y+4*y**2, 5))
Run Code Online (Sandbox Code Playgroud)

请注意,Python 需要**幂函数,就像按位异或^保留的那样。该表达式可以写为或使用方程运算符。3*x**2+2*x*y+4*y**2 - 5Eq(3*x**2+2*x*y+4*y**2, 5)

额外的参数plot_implicit可以设置 x 和 y 的范围,如 中所示plot_implicit (3*x**2+2*x*y+4*y**2 - 5, (x, -2, 2), (y, -2, 2))

或者,为了获得更奇特的效果,matplotlibsimshow可以在 x,y 中绘制一个由 z 值着色的完整区域。选择发散颜色图,椭圆将显示在发散范数指示的中心 z 值处。

from sympy import plot_implicit, Eq
from sympy.abc import x, y

plot_implicit (Eq(3*x**2+2*x*y+4*y**2, 5))
Run Code Online (Sandbox Code Playgroud)

示例图