我正在使用Matplotlib创建动画,而我正在使用Fill对象。我希望能够从函数中更改填充数据。对于其他情节类型,通常有set_data()
函数或set_offsets()
。填充似乎没有。我希望做类似下面的代码,但这不起作用。有什么想法吗?
import matplotlib.pyplot as plt
fig = plt.figure()
ax = plt.axes(xlim=(-1, 1), ylim=(-1, 1),)
triangle, = ax.fill([0,1,1],[0,0,1])
# I want to change the datapoints later in my code, like this:
triangle.set_data([0,2,2],[0,0,2])
答案 0 :(得分:1)
这没有特别详细记录,但Polygon
个对象有一对方法get_xy
和set_xy
。方法get_xy()
返回形状为Ndarray的ndarray(N + 1,2)。额外的点是第一个点的重复(以便多边形关闭)。将所需数据放入预期格式(这是在构建Polygon
对象的文档中指定的格式):
triangle.set_xy(np.array([[0, 2, 2, 0],[0, 0, 2, 0]]).T)
ax = plt.gca()
ax.set_xlim([0, 3])
ax.set_ylim([0, 3])
plt.draw()
这甚至可以让您更改补丁中的顶点数量。
添加了问题以澄清文档https://github.com/matplotlib/matplotlib/issues/3035。