私はPyplusを使用していますが、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()
だから、私はボタンを作成し、二つのグラフを生成し、この中で、私の問題を表示することができますサンプルプログラムを掲載しています。 (注:これらは2つのサブプロットです。隣接する軸にylabelを書く必要があるため、私は2つのサブプロットを作成しました。変更することはできず、このようにする必要があります)
私はgenerateボタンを押すと、グラフが生成されます。 私はグラフを閉じ、再び生成ボタンを押しましたが、再生成されません。 これを実現するために追加できるものを教えてください。
毎回新しいグラフを生成することは可能ですか?ユーザーが生成ボタンを押すと、これも問題を解決すると思います。 事前にお申し付けいただきありがとうございます。
私はこのフォーラムでこのトピックを検索し、軸などをクリアするようなさまざまなことを試みましたが、私はこれに新しいものとして何か間違っていると思います。
私はこれを以前に試しても機能しますが、他の間違いがありました。そのため、その時点でアプリケーションがクラッシュしました。あなたの助けに感謝します。 –