Intégrer Matplotlib dans PyQt : un guide complet
Introduction
Créer des visualisations de données visuellement attrayantes est souvent crucial lors de la création d’interfaces utilisateur. Matplotlib, une bibliothèque Python populaire, fournit un ensemble complet d'outils pour créer divers graphiques et diagrammes. La combinaison de Matplotlib avec PyQt, une puissante liaison Qt pour Python, permet aux développeurs d'intégrer de manière transparente des tracés interactifs dans leurs applications PyQt.
Guide étape par étape
1. Importer les widgets nécessaires
Pour intégrer Matplotlib dans PyQt, nous devons importer les classes pertinentes à partir des modules matplotlib.backends et PyQt4. Plus précisément, nous utilisons FigureCanvasQTAgg comme canevas de traçage et NavigationToolbar2QT pour contrôler l'interaction graphique.
2. Créer une figure
Nous commençons par créer un objet Figure, qui servira de conteneur à notre intrigue. Cet objet contrôle la disposition globale et les propriétés du graphique.
3. Créer un canevas
Le widget FigureCanvas est l'endroit où le traçage réel a lieu. Il agit comme un pont entre la figure matplotlib et l'application PyQt.
4. Créer une barre d'outils
Un widget NavigationToolbar fournit des commandes de navigation telles que le zoom, le panoramique et les fonctionnalités d'enregistrement pour le tracé.
5. Ajouter un bouton
Pour démontrer les capacités interactives, nous pouvons ajouter un simple bouton qui déclenche une fonction de traçage lorsqu'on clique dessus.
6. Traçage des données
Dans la fonction de traçage, nous créons un sous-tracé, y traçons des données et actualisons le canevas pour afficher le graphique mis à jour.
Exemple de code
<code class="python">import sys from PyQt4 import QtGui from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas from matplotlib.backends.backend_qt4agg import NavigationToolbar2QT as NavigationToolbar from matplotlib.figure import Figure import random class Window(QtGui.QDialog): def __init__(self, parent=None): super(Window, self).__init__(parent) self.figure = Figure() self.canvas = FigureCanvas(self.figure) self.toolbar = NavigationToolbar(self.canvas, self) self.button = QtGui.QPushButton('Plot') self.button.clicked.connect(self.plot) layout = QtGui.QVBoxLayout() layout.addWidget(self.toolbar) layout.addWidget(self.canvas) layout.addWidget(self.button) self.setLayout(layout) 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() if __name__ == '__main__': app = QtGui.QApplication(sys.argv) main = Window() main.show() sys.exit(app.exec_())</code>
Ce code montre comment créer une fenêtre avec un tracé matplotlib intégré et un bouton qui déclenche un tracé de données aléatoire lorsque vous cliquez dessus.
Conclusion
En suivant ces étapes, les développeurs peuvent intégrer de manière transparente des tracés matplotlib interactifs dans leurs applications PyQt, créant ainsi des interfaces utilisateur convaincantes qui engagent les utilisateurs avec des visualisations de données.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!