Sto plottando un timeseries in panda usando matplotlib e sto cercando di colorare un aspetto grafico come questo.Come tracciare un rettangolo dietro una funzione nel tempo
ho il tempo per i punti A-F. Ho cercato di ottenere la posizione di loro nella trama usando
gcf().canvas.mpl_connect('button_press_event', debug_print_onclick_event)
e si è conclusa con le posizioni x essendo intorno 22'395'850 (nemmeno vicino a unixtime: S)
Il mio codice in fondo assomiglia a questo:
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()
Ma non viene visualizzato nulla della patch. Testato anche per utilizzare direttamente il tempo, in realtà è stato eseguito ma non è stata eseguita alcuna correzione.
plt.Rectangle(
(0,datetime_D),
60,
4*pandas.datetools.Minutes(15),
facecolor='green',
edgecolor='green'
)
Qual è il tipo sottostante? Come dovrei posizionare things
in tempo in matplotlib? È apprezzato qualsiasi brutto lavoro.
Sembra che tu abbia scambiato x e y come primo argomento di Rettangolo ((x, y), ...). Rectangle ((22395760, 0), ...) –
omg, potrebbe essere la soluzione, lo sto testando proprio ora, aspetta. – SlimJim
btw plot.axvspan() sembra una corrispondenza migliore per quello che vuoi fare –