2012-09-04 49 views
6

我正在使用matplotlib繪製熊貓的時間序列,我試圖給這樣的情節着色。如何隨着時間的推移繪製一個功能背後的矩形

Illustration on the wanted result

我對A-F點時間。我試着用

gcf().canvas.mpl_connect('button_press_event', debug_print_onclick_event) 

,讓他們在情節的位置,並結束了與X位置被周圍22'395'850(甚至還沒有接近unixtime:S)

我的代碼基本上看起來像這樣:

plot = data.plot(legend=False) #where data is the timeseries (pandas.DataFrame). 
plot.add_patch(
    plt.Rectangle(
     (0,22395760), 
     60, 
     45, 
     facecolor='green', 
     edgecolor='green' 
    ) 
) 
plt.draw() 
plt.show() 

但補丁的nothings顯示出來。 還測試了直接使用時間,它實際上運行但沒有補丁被渲染。

plt.Rectangle(
    (0,datetime_D), 
    60, 
    4*pandas.datetools.Minutes(15), 
    facecolor='green', 
    edgecolor='green' 
) 

什麼是底層類型?我應該如何在matplotlib中及時定位things?任何醜陋的工作是值得讚賞的。

+1

您似乎已將x和y交換爲Rectangle((x,y),...)的第一個參數。矩形((22395760,0),...) –

+0

omg,這可能是解決方案,我現在正在測試它,堅持下去。 – SlimJim

+0

btw plot.axvspan()似乎更適合你想要做的事 –

回答

5

您似乎已將x和y作爲Rectangle((x,y),...)的第一個參數交換。 Rectangle((22395760,0),...)

而不是使用補丁,plot.axvspan()似乎更適合您想要做的匹配。

plt.gca().axvspan(date,date+2*pandas.datetools.Minute(15),facecolor='green',edge‌ color='green',alpha=0.3) 
相關問題