2012-10-22 19 views

risposta

45

Il motivo più probabile è che le unità di dati per gli argomenti x sono state utilizzate quando si chiama axhspan. Da the function's docs (mia enfasi):

y coordinate sono in unità di dati e x coordinate sono relativi assi (0-1) unità.

Quindi qualsiasi rettangolo che si estende a sinistra di 0 o a destra di 1 viene semplicemente estratto da grafico.

Un'alternativa semplice potrebbe essere quella di aggiungere un Rectangle al proprio asse (ad es. Tramite plt.gca e add_patch); Rectangle utilizza unità di dati per entrambe le dimensioni. Quanto segue aggiungerebbe un rettangolo grigio con larghezza & altezza di 1 centrato su (2,3):

from matplotlib.patches import Rectangle 
someX, someY = 2, 3 
currentAxis = plt.gca() 
currentAxis.add_patch(Rectangle((someX - .5, someY - .5), 1, 1, facecolor="grey")) 
Problemi correlati