it-swarm.com.de

Wie exportiere ich Diagramme aus matplotlib mit transparentem Hintergrund?

Ich verwende matplotlib, um einige Grafiken zu erstellen, und kann sie ohne den weißen Hintergrund leider nicht exportieren.

sample plot with solid white background

Mit anderen Worten, wenn ich einen Plot wie diesen exportiere und über einem anderen Bild positioniere, verbirgt der weiße Hintergrund das, was sich dahinter befindet, anstatt es durchscheinen zu lassen. Wie kann ich stattdessen Diagramme mit transparentem Hintergrund exportieren?

86
Cupitor

Verwenden Sie die Funktion matplotlib savefig mit dem Schlüsselwortargument transparent=True, um das Bild als PNG-Datei zu speichern.

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)

Ergebnis: demo.png

Natürlich zeigt diese Handlung nicht die Transparenz. Hier ist ein Screenshot der PNG-Datei, die mit dem Befehl ImageMagick display angezeigt wird. Das Schachbrettmuster ist der Hintergrund, der durch die transparenten Teile der PNG-Datei sichtbar ist.

display screenshot

142

PNG-Dateien können mit Transparenz umgehen. Sie können also diese Frage verwenden Plot in Bilddatei speichern, anstatt ihn mit Matplotlib anzuzeigen , um Ihr Diagramm als png -Datei zu speichern.

Und wenn Sie alle weißen Pixel transparent machen möchten, gibt es diese andere Frage: Verwenden Sie PIL, um alle weißen Pixel transparent zu machen?

Wenn Sie einen gesamten Bereich transparent machen möchten, stellen Sie sich die folgende Frage: Verwenden Sie dann die PIL-Bibliothek wie in dieser Frage dargestellt Python PIL: Wie macht man einen Bereich in PNG transparent? , um Ihr Diagramm zu erstellen transparent.

3