Comment puis-je définir la couleur d'arrière-plan sur des zones spécifiques d'une pyplot figure?

J'ai réussi à tracer une série de points avec le code suivant:

plt = pp.figure()
for i in range(spt.shape[1]):
    spktrain = spt[0,i]
    for trial in spktrain:
        non_z = np.nonzero(trial)
        non_z = non_z[0]
        pp.plot(t[non_z], trial[non_z], 'bo')

Je voudrais placer des bandes alternées de fond blanc et gris sur la figure afin de séparer les données de chaque itération de la boucle for externe. En d'autres termes, je voudrais que les données de chaque "spktrain" aient sa propre couleur d'arrière-plan (les données ne se chevauchent pas).

Comment puis-je changer la couleur de fond d'une figure dans une région spécifique?

22
demandé sur blz 2012-03-31 20:25:05

1 réponses

Vous pouvez utiliser axhspan et/ou axvspan comme ceci:

import matplotlib.pyplot as plt

plt.figure()
plt.xlim(0, 5)
plt.ylim(0, 5)

for i in range(0, 5):
    plt.axhspan(i, i+.2, facecolor='0.2', alpha=0.5)
    plt.axvspan(i, i+.5, facecolor='b', alpha=0.5)

plt.show()

entrez la description de l'image ici

46
répondu tom10 2014-10-14 13:40:40