python - 以编程方式更改 matplotlib 填充数据

标签 python matplotlib

我正在使用 Matplotlib 创建动画并使用 Fill 对象。我希望能够从一个函数中更改填充数据。对于其他绘图类型,通常有一个 set_data() 函数或 set_offsets()。 Fill 好像没有。我希望做类似下面代码的事情,但这不起作用。有什么想法吗?

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])

最佳答案

这没有特别详细的文档记录,但是 Polygon 对象有一对方法 get_xyset_xyget_xy() 方法返回一个形状为 (N + 1, 2) 的 ndarray。额外的点是第一个点的重复(因此多边形是闭合的)。将所需数据放入预期格式(这是文档中指定的构造 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 .

关于python - 以编程方式更改 matplotlib 填充数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23430786/

相关文章:

python - 如何选择列中具有最大值的数据框中的行

python - 如何对数据框中某些列和行的数据求和?

python - 添加数据标签 - matplotlib 条形图

python - 在matplotlib中用许多补丁绘制多个图像的有效方法?

python - 在Python中更改keras floatx(默认float类型)

python - Python 中的类 C 结构

python - 在 Python 中检查数据时避免嵌套循环

python - 堆栈图线的设置颜色不起作用

python - matplotlib 中的散点图和组合极坐标直方图

python - 我沿着椭圆形有一组点。如何创建填充的二进制掩码