我有一个交互式图形,在哪个绘图上增量绘制,其中一个是时间块。在matplotlib中修改填充区域
也就是说,在一个循环中我得到一些采样数据,然后将它们添加到图中现有的曲线并重画图片。为此,我使用get/set_x/ydata函数。东西在这条线:
# Get initial data
time = [1, 2, 3, 4, 5]
samples = [0.1, 0.2, 0.3, 0.4, 0.5]
c = plot_curve(time, samples)
# Get new data
time2 = [6, 7, 8]
samp2 = [0.6, 0.7, 0.8]
c.set_xdata(append(c.get_xdata(), time2))
c.set_ydata(append(c.get_ydata(), samp2))
问题是,我也填充曲线附近的一些区域(例如曲线与x轴之间的空间),使用fill_between。目前,我以这种方式创造很多小块的:
# Filling initial chunk
fill_between(time, samples, [0 for i in time])
# Filling next chunk
fill_between(time[-1] + time2, samples[-1] + samp2, [0 for i in time2] + [0])
(我知道这个代码太臭,但它给了一个想法)。
所以,问题是:有一条曲线,但填充区域是2(每个数据块一个)。 这会在图形中产生小的文物,因为每个填充区域都非常靠近下一个区域,其间空间很小。
有没有办法在灌装区域进行这种增量式工作?例如,可以很好地保持2条曲线(一条等于c.get_ydata()和一个零),并让matplotlib自动填充它们之间的区域,而不必显式调用该命令 - 以便填充区域始终与采样点保持一致。
或者,另一个好方法是使用采样点而不是多边形来表示填充区域,以便我可以使用类似于get/set_x/ydata的方法更新区域。
你整理出来了吗? – tacaswell
不幸的是... – AkiRoss
我建议发邮件到邮件列表或在github上创建和发布。 – tacaswell