Seite 1 von 1

Graph über Funktion in interface anzeigen lassen

Verfasst: Dienstag 23. Dezember 2014, 16:48
von möppi
Hi,

Ich bin ziemlich am verzweifeln, weil ich seit Tagen immer noch nicht herausgefunden habe, wie man einen Graphen erzeugten Oberfläche über eine Funktion anzeigen lassen kann (Ich verwende den Qt-Designer). Ich habe müheseelig mehrere Plot-Routinen geschrieben, die scheinbar voll für den Arsch sind, weil ich die offensichtlich nicht verwenden kann. Um einen Plot zu erzeugen könnte man z.B schreiben:

Code: Alles auswählen

import matplotlib.pyplot as plt

def main():
    
    application = QApplication(sys.argv)
    frame = loadUi('interace.ui')
    
    def plot_me():  
 
        x=[1,2,3]
        y=[1,4,9] 

        mw=frame.mplwidget #aus der Klasse MatplotlibWidgets
        mw.axes.plot(x,y) #hier wuerde ich gerne lieber eine Plot-Funktion aus einem anderen Skript (plots.py) aufrufen
        mw.figure.draw()
        
    frame.pushButton.clicked.connect(plot_me)
    frame.show()
    sys.exit(application.exec_())
 
if __name__ == '__main__':
    main()
Dieser Code funktioniert auch. Nun habe ich ein Skript von verschiedenen Funktionen geschrieben. Um das Prinzip zu verdeutlichen betrachten wir mal:

Code: Alles auswählen

#Skriptname plots.py

#Variante 1:
def f1(x,y):
     plt.plot(x,y)
     plt.show()

#Variante2:
def f2(x,y):   
    f=Figure()
    a=f.add_subplot(111)
    a.plot(x2,y2)
    return f
Es muss doch irgendeine Möglichkeit geben, meine Funktionen zu verwenden. Ich habe schon alles erdenkliche ausprobiert und komme einfach nicht weiter. In Tkinter hat es sogar funktioniert Variante2 zu integrieren. In Qt weiß ich leider nicht, wie es funktioniert.

Ich wäre euch dankbar für eure Hilfe.