Ajouté matplotlib dans un canvas
Résolu/Fermé
rasielblas
Messages postés
135
Date d'inscription
jeudi 20 mars 2014
Statut
Membre
Dernière intervention
12 mai 2021
-
17 févr. 2020 à 12:01
rasielblas Messages postés 135 Date d'inscription jeudi 20 mars 2014 Statut Membre Dernière intervention 12 mai 2021 - 19 févr. 2020 à 06:48
rasielblas Messages postés 135 Date d'inscription jeudi 20 mars 2014 Statut Membre Dernière intervention 12 mai 2021 - 19 févr. 2020 à 06:48
A voir également:
- Matplotlib canvas
- Canvas gratuit - Télécharger - Divers Photo & Graphisme
- Gemini canvas - Guide
- Canvas projet - Télécharger - Études & Formations
- 3d canvas - Télécharger - 3D
- Impossibilité d'utiliser MATPLOTLIB - Forum Python
2 réponses
Bonsoir,
Tu pourrais t'aider de cette page :
https://pythonspot.com/pyqt5-matplotlib/
Et il y a beaucoup d'autres articles concernant pyqt5 sur ce site.
J'ai rapidement testé à partir du code cette page en intégrant le graphique et réduisant le code au plus simple.
Comme je suppose que le but est d'ajouter d'autres widgets à ta fenêtre sinon aucun intérêt en l'état, il faudra je pense utiliser des layouts, comme tu as tenté de faire.
Tu pourrais t'aider de cette page :
https://pythonspot.com/pyqt5-matplotlib/
Et il y a beaucoup d'autres articles concernant pyqt5 sur ce site.
J'ai rapidement testé à partir du code cette page en intégrant le graphique et réduisant le code au plus simple.
import sys from PyQt5.QtWidgets import QApplication, QMainWindow from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas from matplotlib.backends.backend_qt5agg import NavigationToolbar2QT as NavigationToolbar from matplotlib.figure import Figure class App(QMainWindow): def __init__(self): super().__init__() self.title = 'Title' self.initUI() def initUI(self): self.setWindowTitle(self.title) self.canvas = PlotCanvas(self) self.setGeometry(0, 0, self.canvas.width(), self.canvas.height()) self.show() class PlotCanvas(FigureCanvas): def __init__(self, parent): fig = Figure() self.axes = fig.subplots() FigureCanvas.__init__(self, fig) self.setParent(parent) self.toolbar = NavigationToolbar(self, self) height = self.toolbar.height() + self.height() fig.set_figheight(height) self.plot() def plot(self): import sqlite3 var_personnage = [] var_nombre_faute = [] with sqlite3.connect("base.db") as con: cur = con.cursor() cur.execute("select personne, count(*) from matable group by(personne)") for personne, nb in cur.fetchall(): var_personnage.append(personne) var_nombre_faute.append(nb) people = var_personnage y = range(len(people)) error=0 self.axes.barh(y, var_nombre_faute, xerr=error, align='center',color='red', edgecolor='green', height=0.5) self.axes.set_yticks(y) self.axes.set_yticklabels(people) self.axes.invert_yaxis() # labels read top-to-bottom self.axes.set_xlabel('Pourcentage') self.axes.set_title('Nombre enregistrement personne') if __name__ == '__main__': app = QApplication(sys.argv) ex = App() sys.exit(app.exec_())
Comme je suppose que le but est d'ajouter d'autres widgets à ta fenêtre sinon aucun intérêt en l'état, il faudra je pense utiliser des layouts, comme tu as tenté de faire.
rasielblas
Messages postés
135
Date d'inscription
jeudi 20 mars 2014
Statut
Membre
Dernière intervention
12 mai 2021
9
19 févr. 2020 à 06:48
19 févr. 2020 à 06:48
Impeccable comme d'hab! merci beaucoup ça marche très bien! :-)