我正在使用PyQt5爲gui設計使用Matplotlib包生成圖形的GUI應用程序。 在這個應用程序中,用戶從一行加載數據,然後按下生成按鈕,生成一個處理過的圖形,現在的問題是,在關閉圖形時,當用戶加載新數據並按下生成按鈕時,圖形不再顯示。更新使用Matplotlib生成的按鈕點擊生成的圖
代碼
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()
所以我張貼的樣本程序,它可以顯示我的問題,在此我創建了一個按鈕,生成的兩個地塊。 (注:這是兩個子圖,我創建了兩個子圖,因爲我需要在相鄰的軸上寫ylabel,所以這是一個要求我不能改變,它必須是這樣的)
我按下了生成按鈕,圖形生成。 我關閉了圖表,並再次按下了生成按鈕,但沒有重新生成。 請建議我可以添加什麼來實現這一點。
是否有可能生成新的圖每次用戶按下生成按鈕,我認爲這也將解決問題。 請提前建議並提前致謝。
我已經在這個論壇上搜索過這個主題,並嘗試過各種東西,如清理軸等等,但我認爲我做錯了什麼,因爲我對所有這些都是新的。
由於它的作品,即使我想這較早,但做了一些其他的錯誤,這就是爲什麼在那個時候我的應用程序崩潰。非常感謝你的幫助。 –