我有一個交互式圖形,在哪個繪圖上增量繪製,其中一個是時間塊。在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