Force hintergrund matplotlib Abbildung transparent

Ich versuche, um eine matplotlib Abbildung in einem Python-Gtk3-Anwendung, die ich Schreibe. Ich würde gerne die hintergrund Farbe von der Abbildung transparent, so dass die Figur nur auftaucht, gegen die Natürliche graue hintergrund der Anwendung, aber nichts, was ich bisher ausprobiert habe, scheint zu funktionieren.

Hier ein MWE:

from gi.repository import Gtk
import matplotlib.pyplot as plt
import matplotlib.lines as mlines
import numpy as np
from matplotlib.backends.backend_gtk3agg import FigureCanvasGTK3Agg as FigureCanvas

class MyWindow(Gtk.Window):
    def __init__(self):
        Gtk.Window.__init__(self)
        fig, ax = plt.subplots()
        #fig.patch.set_alpha(0.0)
        x,y = np.array([[0, 1], [0, 0]])
        line = mlines.Line2D(x, y, c='#729fcf')
        ax.add_line(line)
        plt.axis('equal')
        plt.axis('off')

        fig.tight_layout()

        sw = Gtk.ScrolledWindow()
        sw.set_border_width(50)
        canvas = FigureCanvas(fig)
        sw.add_with_viewport(canvas)

        layout = Gtk.Grid()
        layout.add(sw)

        self.add(layout)

win = MyWindow()
win.connect("delete-event", Gtk.main_quit)
win.show_all()
Gtk.main()

Wenn die fig.patch.set_alpha(0.0) Zeile ist auskommentiert, die Farbe des Hintergrundes ändert nur weiß, statt Grau. Alle Anregungen sehr dankbar!

  • sind Sie sicher, dass der hintergrund einer leeren Gtk.Window ist nicht standardmäßig weiß auf Ihrer Plattform? dies scheint der Fall bei mir (Unity-desktop).
  • Nein, das habe ich überprüft und es scheint zu grauen. Ich schaffte es, um das problem mit der get_style - Methode des parent-Fenster die Farbe des Hintergrunds und dann legen Sie es als facecolour der Achsen. Es ist keine tolle Lösung, aber es funktioniert.
InformationsquelleAutor Donagh | 2013-10-08
Schreibe einen Kommentar