Partage
  • Partager sur Facebook
  • Partager sur Twitter

pyQT5 matplotlib clim et colorbar absent

    7 mars 2018 à 21:35:36

    Bonjour,

    Novice en programmation, je n'arrive pas à limiter la plage de valeurs à tracer et à faire afficher la barre d'échelle à côté de mon graphique.

    Sans Qt, j'y arrive comme dans le code suivant.

    import numpy as np
    import matplotlib.pyplot as plt
    
    f = np.array([
            [1000,1200,1400,1100],
            [1000,1200,1400,1100],
            [1400,1400,1400,1100],
            [1000,1400,1400,1100]])
    
    plt.imshow(f)
    plt.colorbar()
    plt.clim(1200,1400)
    plt.show()

    Alors qu'avec pyQt, je bloque.

    import sys
    from PyQt5.QtWidgets import QDialog, QApplication, QPushButton, QVBoxLayout
    
    from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas
    from matplotlib.backends.backend_qt5agg import NavigationToolbar2QT as NavigationToolbar
    import matplotlib.pyplot as plt
    
    import numpy as np
    
    f = np.array([
            [1000,1200,1400,1100],
            [1000,1200,1400,1100],
            [1400,1400,1400,1100],
            [1000,1400,1400,1100]])
    
    
    class Window(QDialog):
        def __init__(self, parent=None):
            super(Window, self).__init__(parent)
            self.figure = plt.figure()
            self.canvas = FigureCanvas(self.figure)
            self.toolbar = NavigationToolbar(self.canvas, self)
    
            self.button = QPushButton('Graphe')
            self.button.clicked.connect(self.graphe)
    
            layout = QVBoxLayout()
            layout.addWidget(self.toolbar)
            layout.addWidget(self.canvas)
            layout.addWidget(self.button)
            self.setLayout(layout)
    
        def graphe(self):
            self.figure.clear()
            ax = self.figure.add_subplot(111)
            ax.imshow(f)
    # insertion de la barre d'échelle... fonctionne pas
            ax.colorbar()
    # limitation de la plage de valeurs... fonctionne pas non plus
            ax.clim(1200,1400)
            self.canvas.draw()
    
    if __name__ == '__main__':
        app = QApplication(sys.argv)
        main = Window()
        main.show()
        sys.exit(app.exec_())


    En vous remerciant d'avance pour votre aide.

    -
    Edité par titives 7 mars 2018 à 21:48:51

    • Partager sur Facebook
    • Partager sur Twitter
      20 mars 2018 à 11:55:51

      Bonjour,

      En utilisant

      cax = ax.imshow(f)
      self.figure.colorbar(cax)

      au lieu de

      ax.imshow(f)
      ax.colorbar()
      ax.clim(1200,1400)

      ça devrait marcher.

      • Partager sur Facebook
      • Partager sur Twitter

      pyQT5 matplotlib clim et colorbar absent

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown