web-dev-qa-db-fra.com

Comment définir l'opacité de la couleur d'arrière-plan du graphique avec Matplotlib

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

59
user179169

Si vous voulez simplement 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 du chiffre 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 souhaitez un contrôle plus fin, vous pouvez simplement définir les valeurs de couleur faciale et/ou alpha pour le patch d'arrière-plan de la figure et des axes. (Pour rendre un patch complètement transparent, nous pouvons soit définir l'alpha sur 0, soit définir la couleur de la facette sur 'none' (sous forme de 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()

alt text

99
Joe Kington