【发布时间】:2018-08-27 08:38:03
【问题描述】:
我确定有人问过这个问题,但我很难找到适用于搜索的简明答案。一些好的答案似乎取决于提前计算数组的最终大小。看起来这应该很简单,而且我有点新手所以也许我只是在搜索错误的术语......
我的问题是: 当数组的长度未知且随时间变化时,如何让 PyPlot 刷新源自 numpy 数据数组的现有行的数据?
我目前的代码如下
#Initial Setup
changing_dataset = np.array(1) #initialize with a single blank y-value
plt.close('all') #clear all the priors
plt.ion()
f, axarr = plt.subplots(3,2) #setup a 3x2 plot ...only 1 shown below
axarr[0,0].set_title('My Plot')
line1, = axarr[0,0].plot(changing_dataset)
plt.show
... some code which appends new data to changing_dataset is omitted here...
那么我只想这样做:
line1.set_ydata(changing_dataset)
f.canvas.draw()
f.canvas.flush_events()
plt.show()
为了更新我初始绘图中的线,现在基于数组“changeing_dataset”中包含的新的、更大的数据集。
但这会产生类似的错误
ValueError:形状不匹配:无法将对象广播到单个形状
如何绕过似乎需要数组为静态大小的要求?我宁愿不需要重新命名并从头开始构建绘图 - 因为唯一需要更改的是线条(并且可能会自动重新缩放轴)
【问题讨论】:
标签: python arrays matplotlib graph line