Python Matplotlib patch`get_verts()`在向轴添加面片后发生更改

Python Matplotlib patch`get_verts()`在向轴添加面片后发生更改,python,python-3.x,matplotlib,Python,Python 3.x,Matplotlib,我想通过使用get_verts()函数获取matplotlib.patches.eliple对象的顶点。不幸的是,在将椭圆添加到轴后,顶点已更改。以下是我的代码(Python 3.5): 是否有人了解这一点和/或知道如何获取原始顶点(在将椭圆添加到轴之前)?在打印之前存储原始顶点。绘制面片时,由于轴应用的变换,顶点会发生更改。查看椭圆的get_transform()返回值。这也是我的第一个想法,当然也很管用。我只是想可能有更好的方法。如果你在绘制顶点后使用变换,你需要对它们应用一个逆变换来获得初

我想通过使用
get_verts()
函数获取
matplotlib.patches.eliple
对象的顶点。不幸的是,在将椭圆添加到
轴后,顶点已更改。以下是我的代码(Python 3.5):


是否有人了解这一点和/或知道如何获取原始顶点(在将椭圆添加到轴之前)?

在打印之前存储原始顶点。绘制面片时,由于轴应用的变换,顶点会发生更改。查看椭圆的
get_transform()
返回值。这也是我的第一个想法,当然也很管用。我只是想可能有更好的方法。如果你在绘制顶点后使用变换,你需要对它们应用一个逆变换来获得初始值。是的,你是对的。其工作原理如下:ax.transData.inversed().transform(e.get_verts())提供原始顶点
import matplotlib.pyplot as plt
from matplotlib.figure import Figure
from matplotlib.patches import Ellipse

fig = Figure()
ax = fig.add_subplot(111, aspect='equal')

e = Ellipse((0,0), 100, 200)
print(e.get_verts())
[[   0.         -100.        ]
 [   2.48205003  -99.91768257]
 [   7.38744659  -98.94347052]
...,
 [  -7.38744659  -98.94347052]
 [  -2.48205003  -99.91768257]
 [   0.         -100.        ]]

ax.add_patch(e)
print(e.get_verts())
[[  8.00000000e+01  -3.83520000e+04]
 [  1.57066457e+02  -3.83518765e+04]
 [  3.11115446e+02  -3.83503961e+04]
 ..., 
 [ -1.51115446e+02  -3.83503961e+04]
 [  2.93354282e+00  -3.83518765e+04]
 [  8.00000000e+01  -3.83520000e+04]]