Maison >développement back-end >Tutoriel Python >Comment intégrer la visualisation Matplotlib dans les applications PyQt4 ?

Comment intégrer la visualisation Matplotlib dans les applications PyQt4 ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-28 09:06:30301parcourir

How to Integrate Matplotlib Visualization into PyQt4 Applications?

Intégrer Matplotlib dans PyQt4 : un guide complet

La création de visualisations de données interactives dans vos interfaces utilisateur PyQt4 peut être réalisée de manière transparente grâce à l'intégration de Matplotlib . Bien que trouver des exemples d'intégration de Matplotlib puisse être difficile, comprendre le processus est assez simple.

Comment intégrer Matplotlib dans PyQt4

Pour intégrer Matplotlib dans PyQt4, suivez ces étapes :

  1. Importer les widgets Matplotlib :
    Importez les widgets nécessaires depuis matplotlib.backends.backend_qt4agg, en particulier FigureCanvasQTAgg et NavigationToolbar2QT.
  2. Instancier Matplotlib Widgets :
    Créez des instances des widgets Figure, Canvas et Toolbar. La figure représente la surface de traçage, le canevas affiche la figure et la barre d'outils offre des capacités de navigation et de zoom.
  3. Créez une fonction de traçage :
    Définissez une fonction qui génère le tracé souhaité. , efface le graphique existant et redessine le canevas.
  4. Connecter le bouton à la fonction de traçage :
    Créez un bouton et connectez son événement cliqué à la fonction de traçage pour déclencher la création du graphique à la demande.
  5. Configurer la mise en page :
    Ajoutez vos widgets et votre bouton matplotlib à une mise en page, en les disposant comme vous le souhaitez dans votre interface utilisateur.

Exemple de code :

Voici un exemple de code simple pour illustrer le processus :

<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)

        # a figure instance to plot on
        self.figure = Figure()

        # this is the Canvas Widget that displays the `figure`
        # it takes the `figure` instance as a parameter to __init__
        self.canvas = FigureCanvas(self.figure)

        # this is the Navigation widget
        # it takes the Canvas widget and a parent
        self.toolbar = NavigationToolbar(self.canvas, self)

        # Just some button connected to `plot` method
        self.button = QtGui.QPushButton('Plot')
        self.button.clicked.connect(self.plot)

        # set the layout
        layout = QtGui.QVBoxLayout()
        layout.addWidget(self.toolbar)
        layout.addWidget(self.canvas)
        layout.addWidget(self.button)
        self.setLayout(layout)

    def plot(self):
        ''' plot some random stuff '''
        # random data
        data = [random.random() for i in range(10)]

        # create an axis
        ax = self.figure.add_subplot(111)

        # discards the old graph
        ax.clear()

        # plot data
        ax.plot(data, '*-')

        # refresh canvas
        self.canvas.draw()

if __name__ == '__main__':
    app = QtGui.QApplication(sys.argv)

    main = Window()
    main.show()

    sys.exit(app.exec_())</code>

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!

Déclaration:
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