मैं लिख रहा हूं कि एक पायथन Gtk3 अनुप्रयोग में एक matplotlib आंकड़ा शामिल करने की कोशिश कर रहा हूँ। मैं आकृति के पृष्ठभूमि रंग को पारदर्शी होने के लिए सेट करना चाहता हूं, ताकि यह आंकड़ा एप्लिकेशन की प्राकृतिक भूरे रंग की पृष्ठभूमि के खिलाफ दिखाई दे, लेकिन अब तक मैंने जो भी प्रयास नहीं किया है, वह काम कर रहा है।matplotlib आकृति की बल पृष्ठभूमि पारदर्शी होने के लिए
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()
हैं fig.patch.set_alpha(0.0)
लाइन uncommented है, पृष्ठभूमि का रंग केवल सफेद करने के लिए बदल जाता है, बल्कि ग्रे से:
यहाँ एक मेगावाट है। सभी सुझावों की बहुत सराहना की!
क्या आप सुनिश्चित हैं कि खाली 'Gtk.Window' की पृष्ठभूमि डिफ़ॉल्ट रूप से आपके प्लेटफ़ॉर्म पर सफेद नहीं है? यह मेरे लिए मामला है (एकता डेस्कटॉप)। –
नहीं, मैंने चेक किया और यह ग्रे लगता है। मैं पृष्ठभूमि रंग प्राप्त करने के लिए पैरेंट विंडो की 'get_style' विधि का उपयोग करके समस्या को हल करने में कामयाब रहा और फिर इसे अक्ष के चेहरे के रूप में सेट किया। यह एक अच्छा समाधान नहीं है, लेकिन यह काम करता है। – Donagh