155 votes

Comment exporter les graphiques de matplotlib avec un fond transparent ?

J'utilise matplotlib pour faire quelques graphiques et malheureusement je ne peux pas les exporter sans le fond blanc.

sample plot with solid white background

En d'autres termes, lorsque j'exporte un tracé comme celui-ci et que je le place au-dessus d'une autre image, le fond blanc masque ce qui se trouve derrière au lieu de le laisser transparaître. Comment puis-je exporter des tracés avec un fond transparent à la place ?

246voto

Warren Weckesser Points 17089

Utilisez le logiciel matplotlib savefig avec l'argument mot-clé transparent=True pour enregistrer l'image en tant que fichier png.

In [30]: x = np.linspace(0,6,31)

In [31]: y = np.exp(-0.5*x) * np.sin(x)

In [32]: plot(x, y, 'bo-')
Out[32]: [<matplotlib.lines.Line2D at 0x3f29750>]            

In [33]: savefig('demo.png', transparent=True)

Résultat : demo.png

Bien sûr, ce graphique ne démontre pas la transparence. Voici une capture d'écran du fichier PNG affiché à l'aide de l'outil ImageMagick display commande. Le motif en damier est l'arrière-plan qui est visible à travers les parties transparentes du fichier PNG.

display screenshot

4voto

Stephane Rolland Points 8110

Les fichiers Png peuvent gérer la transparence. Vous pourriez donc utiliser cette question Enregistrer le tracé dans un fichier image au lieu de l'afficher avec Matplotlib afin de vous épargner le graphique en tant que png fichier.

Et si vous voulez rendre tous les pixels blancs transparents, il y a cette autre question : Utiliser le LIP pour rendre tous les pixels blancs transparents ?

Si vous voulez rendre une zone entière transparente, il y a cette question : Et ensuite utiliser la bibliothèque PIL comme dans cette question Python PIL : comment rendre une zone transparente en PNG ? afin de rendre votre graphique transparent.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X