Da ich schon seit mehr als einem Tag an einem ungelösten Problem sitze, dachte ich, es wäre mal wieder Zeit mich ans Forum zu wenden. Ich möchte ein Figure-Objekt in meiner GUI verwendenden. Ich verwende den Qt Designer. Die Funktion (die auch funktioniert), die das Figure-Objekt erzeugt lautet:
Code: Alles auswählen
#file name: plots.py
#Es werden einfach die Koordinaten der Daten eingegeben (x,y,z) und der Plot wird erzeugt.
def color_plot(x,y,z,x_label="x",y_label="y",z_label="z"):
f=Figure()
a=f.add_subplot(111)
x_color=a.pcolormesh(x,y,z.T)
f.colorbar(x_color,orientation="vertical",label=z_label)
a.set_xlabel(x_label)
a.set_ylabel(y_label)
return f
Code: Alles auswählen
import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from PyQt4.uic import *
from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas
from matplotlib.figure import Figure
import plots
def main():
application = QApplication(sys.argv)
frame = loadUi('inter.ui')
def load_data():
x=[....some_data....]
y=[.....]
z=[....]
f=plots.color_plot(x,y,z)
#Das hier war meine Idee, die allerdings nicht funktioniert. Es wird zwar keine Fehlermeldung angezeigt, allerdings gibt es kein Output
f=plots.color_plot(x,y,z1)
mw=frame.mplwidget
mw.fig=f
mw.draw()
frame.pushButton_2.clicked.connect(load_data)
frame.show()
sys.exit(application.exec_())
if __name__ == '__main__':
main()