Ich arbeite an einer GUI-Anwendung, die Graphen mit Matplotlib-Paket generiert, für GUI-Design verwende ich PyQt5. In dieser Anwendung lädt Benutzer die Daten aus einer Zeile und dann auf die Schaltfläche generieren, wird ein verarbeiteter Graph generiert, jetzt ist das Problem, dass beim Schließen des Graphen, wenn Benutzer die neuen Daten lädt, und drücken Sie die Schaltfläche Generieren, Grafik wird nicht erneut angezeigt.Aktualisierung Graph erzeugt mit Matplotlib per Knopfdruck
-Code
import sys
from PyQt5.QtCore import QCoreApplication
from PyQt5.QtGui import *
from PyQt5.QtWidgets import QApplication, QWidget, QMainWindow, QPushButton
import numpy as np
import matplotlib.pyplot as plt
fig, (ax1, ax2) = plt.subplots(nrows=2, sharex=True)
plt.subplots_adjust(hspace=0)
class window(QMainWindow):
def __init__(self):
super(window, self).__init__()
self.setGeometry(50, 50, 100, 100)
self.setWindowTitle('Generate Graph')
self.home()
def home(self):
btn = QPushButton('Generate', self)
btn.clicked.connect(self.generate_graph)
#btn.resize(100, 100)
#btn.move(100, 100)
self.show()
def generate_graph(self):
# In real application these points gets updated
x = [0,1,2,3,4,5,6,7,8,9]
y1 = [0,1,2,3,4,5,6,7,8,9]
y2 = [0,1,2,3,4,5,6,7,8,9]
ax1.plot(x,y1)
ax2.plot(x,y2)
plt.show()
def run():
app = QApplication(sys.argv)
Gui = window()
sys.exit(app.exec_())
run()
So bin ich das Beispielprogramm veröffentlichen, das mein Problem zeigen kann, in dieser i eine Schaltfläche erstellt und zwei Parzellen erzeugt. (Hinweis: das sind zwei Unterplots, ich habe zwei Unterplots erstellt, weil ich Ylabel auf der benachbarten Achse schreiben muss, so ist es eine Anforderung, die ich nicht ändern kann und es muss so sein)
Ich drückte auf das Generate Button, Grafik wird generiert. Ich schloss das Diagramm, und erneut die Schaltfläche "Generieren" gedrückt, aber es ist nicht neu generiert. Bitte schlagen Sie mir vor, was ich hinzufügen kann, um dies zu ermöglichen.
Ist es möglich, jedes Mal einen neuen Graphen zu generieren, wenn der Benutzer die Schaltfläche "Generate" drückt, denke ich, dass dies auch das Problem lösen wird. Bitte vorschlagen und danke im Voraus.
Ich hatte mit diesem Thema in diesem Forum gesucht, und versuchte verschiedene Dinge wie das Löschen der Achse etc etc, aber ich denke, ich mache etwas falsch, wie ich neu zu all dem bin.
Danke es funktioniert, auch ich habe dies früher versucht, aber habe einen anderen Fehler gemacht und deshalb zu dieser Zeit meine Anwendung abgestürzt. Vielen dank für Deine Hilfe. –