Maison > développement back-end > Tutoriel Python > Comment intégrer des tracés Matplotlib dans PyQt : un guide étape par étape

Comment intégrer des tracés Matplotlib dans PyQt : un guide étape par étape

Susan Sarandon
Libérer: 2024-10-26 19:28:03
original
611 Les gens l'ont consulté

How to Embed Matplotlib Plots in PyQt: A Step-by-Step Guide

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal