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

Patricia Arquette
Libérer: 2024-10-28 09:06:30
original
191 Les gens l'ont consulté

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

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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!