我是Matplotlib的新手,正在尝试使用for循环更新椭圆补丁。

import matplotlib.pyplot as plt
from matplotlib.patches import Ellipse
fig, plts = plt.subplots(1,1)
cE = Ellipse(xy, w, h, theta)
plts.add_patch(cE)
plt.show()
for i in range(0, 10):
    xy_update, theta_update = some_function(i)
    cE.<?> = xy_update
    cE.<?> = theta_update
    canvas.draw()

我正在寻找<?>更新椭圆补丁参数的正确方法。

分析解答

Ellipse.set_center可以设置椭圆中心的xy坐标。

虽然它具有setter,但是angle选项给出的椭圆旋转没有。

您可以在椭圆实例上设置angle属性,然后设置xy

cE.angle = theta_update
cE.set_center(xy_update)

您还可以使用Ellipse.update_from创建一个新的Ellipse实例,并从中更新旧实例

cE.update_from(Ellipse(xy_update, w, h, theta_update))