¿Cómo puedo configurar el color de fondo de mis figuras? Me gustaría usar FigureCanvasQTAgg.

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)   
0
hko 14 nov. 2017 a las 22:31

2 respuestas

La mejor respuesta

En circunstancias habituales, no hay diferencia entre el fondo de la figura y el fondo del lienzo. Por lo tanto, puede configurar el fondo de la figura en algún color

self.fig.set_facecolor("blue")

En caso de que no desee cambiar el color de fondo de la figura (no puedo pensar en ninguna razón en este momento, pero tal vez haya un caso de uso), deberá hacer que el fondo de la figura sea transparente, de modo que el color de fondo del lienzo pueda brillar a través de,

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

Esta respuesta mía brinda información y también un código de prueba para jugar.

3
ImportanceOfBeingErnest 14 nov. 2017 a las 20:09

Nunca he usado matplotlib, ni he probado esta respuesta, pero adivinando aquí ...

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

?

(basado en algunas otra respuesta)

1
Grzegorz Oledzki 14 nov. 2017 a las 19:40