Incorporando Matplotlib no PyQt4: um guia passo a passo
Integrar um gráfico matplotlib interativo em uma interface de usuário PyQt4 é mais simples do que isso pode parecer. Aqui está uma explicação passo a passo:
Importe os módulos necessários:
Comece importando os widgets Qt relevantes de matplotlib.backends. backend_qt4agg:
from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas
from matplotlib.backends.backend_qt4agg import NavigationToolbar2QT as NavigationToolbar
Crie uma figura Matplotlib:
Instancie um objeto Figure para servir como tela para seu gráfico.
self.figure = Figure()
Instanciar um widget Qt para o Canvas:
Crie uma instância do FigureCanvas, que representa o widget Qt que exibirá o figura.
self.canvas = FigureCanvas(self.figure)
Adicionar uma barra de ferramentas de navegação:
O widget NavigationToolbar fornece controles para zoom, panorâmica e salvamento da figura.
self.toolbar = NavigationToolbar(self.canvas, self)
Criar um botão:
Crie um botão PyQt que, quando clicado, acionará uma função de plotagem.
self.button = QtGui.QPushButton('Plot')
self.button.clicked.connect(self.plot)
Projete o layout:
Organize os widgets em um layout Qt.
layout = QtGui.QVBoxLayout()
layout.addWidget(self.toolbar)
layout.addWidget(self.canvas)
layout.addWidget(self.button)
self.setLayout(layout)
Plot Random Data:
Defina uma função para gerar dados aleatórios e plotá-los na figura.
def plot(self):
data = [random.random() for i in range(10)]
ax = self.figure.add_subplot(111)
ax.clear()
ax.plot(data, '*-')
self.canvas.draw()
Seguindo essas etapas, você pode incorporar um gráfico matplotlib em uma interface de usuário PyQt4, permitindo visualizar dados e interagir com eles por meio de widgets Qt.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3