2017-11-14 3 views
0

Wie kann ich die Hintergrundfarbe meiner Figuren einstellen? Ich würde gerne FigureCanvasQTAgg verwenden.Wie ändert man die Figur Canvas Color (PyQt)

from PyQt5 import QtCore, QtWidgets, QtWidgets 
from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg 
from matplotlib.backends.backend_qt5 import NavigationToolbar2QT 
from matplotlib.figure import Figure 


class FigureCanvas(FigureCanvasQTAgg): 
    def __init__(self, parent=None, width=5, height=4, dpi=100): 
     self.fig = Figure(figsize=(width, height), dpi=dpi) 
     FigureCanvasQTAgg.__init__(self, self.fig) 
     self.setParent(parent) 
     FigureCanvas.setSizePolicy(
      self, 
      QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding, 
     ) 
     FigureCanvas.updateGeometry(self) 

Antwort

3

Unter normalen Umständen gibt es keinen Unterschied zwischen der Figur und Hintergrund der Leinwand-Hintergrund. So können Sie die Abbildung Hintergrund zu etwas Farbe gesetzt

self.fig.set_facecolor("blue") 

Falls Sie wollen nicht auf die Hintergrundfarbe der Figur ändern (Ich kann nicht von irgendeinem Grunde denke, gerade jetzt, aber vielleicht gibt es einen Anwendungsfall), Sie müßten die Figur Hintergrund transparent, so dass die Leinwand Hintergrundfarbe kann durch glänzen

zu spielen mit
self.fig.set_facecolor("none") 
self.setStyleSheet("background-color:blue;") 

This answer of mine gibt einen Einblick und auch einen Test-Code zu machen.

1

Ich habe noch nie diese Antwort matplotlib, noch getestet verwendet, aber hier zu raten ...

self.setStyleSheet("background-color:red;") 

?

(basierend auf einige other answer)

+1

Der Autor von "eine andere Antwort" sagt: Ja, aber .... Sie müssen auch die Figur transparent machen, so dass die rote Farbe des Leinwandhintergrundes gesehen werden würde. Siehe meine Antwort. Übrigens. Wenn Sie den Inhalt einer anderen Antwort verwenden, wäre es nicht schön, sie zu verbessern - wie es irgendwie nützlich macht, oder? – ImportanceOfBeingErnest

+0

@ImportanceOfBeingErnest - obv. beide hochgestuft. –

Verwandte Themen