Comment définir l'opacité de la couleur de fond du graphique avec Matplotlib

J'ai joué avec Matplotlib et je n'arrive pas à comprendre comment changer la couleur d'arrière-plan du graphique, ou comment rendre l'arrière-plan complètement transparent.

54
demandé sur Chris Seymour 2011-01-03 04:26:23

1 réponses

Si vous voulez juste que l'arrière-plan entier de la figure et des axes soit transparent, vous pouvez simplement spécifier transparent=True lors de l'enregistrement de la figure avec fig.savefig.

Par exemple:

import matplotlib.pyplot as plt
fig = plt.figure()
plt.plot(range(10))
fig.savefig('temp.png', transparent=True)

Si vous voulez un contrôle plus fin, vous pouvez simplement définir les valeurs facecolor et / ou alpha pour le patch d'arrière-plan figure et axes. (Pour rendre un patch complètement transparent, nous pouvons soit définir l'alpha à 0, soit définir la facecolor à 'none' (comme une chaîne, pas l'objet None!))

Par exemple:

import matplotlib.pyplot as plt

fig = plt.figure()

fig.patch.set_facecolor('blue')
fig.patch.set_alpha(0.7)

ax = fig.add_subplot(111)

ax.plot(range(10))

ax.patch.set_facecolor('red')
ax.patch.set_alpha(0.5)

# If we don't specify the edgecolor and facecolor for the figure when
# saving with savefig, it will override the value we set earlier!
fig.savefig('temp.png', facecolor=fig.get_facecolor(), edgecolor='none')

plt.show()

le texte d'alt

84
répondu Joe Kington 2011-01-16 21:01:42