Dai un'occhiata a axvspan
(e axhspan per evidenziare una regione dell'asse y).
import matplotlib.pyplot as plt
plt.plot(range(10))
plt.axvspan(3, 6, color='red', alpha=0.5)
plt.show()
Se stai usando date, allora avrete bisogno di convertire i tuoi min e max valori x per matplotlib date. Utilizzare matplotlib.dates.date2num
per gli oggetti datetime
o matplotlib.dates.datestr2num
per vari timestamp di stringa.
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
import datetime as dt
t = mdates.drange(dt.datetime(2011, 10, 15), dt.datetime(2011, 11, 27),
dt.timedelta(hours=2))
y = np.sin(t)
fig, ax = plt.subplots()
ax.plot_date(t, y, 'b-')
ax.axvspan(*mdates.datestr2num(['10/27/2011', '11/2/2011']), color='red', alpha=0.5)
fig.autofmt_xdate()
plt.show()
fonte
2011-11-25 15:49:05
Si potrebbe tracciare automaticamente un rettangolo ... avete già i valori x che definiscono l'avvio/arresto della regione per-essere-in evidenza? Se è così, puoi disegnare una patch Rettangolo per evidenziare quella sezione (fammi sapere se hai bisogno di un esempio!) – Daan