Seite 1 von 1

Graph in GUI ändern/bearbeiten

Verfasst: Sonntag 12. Januar 2020, 13:45
von Laura98
Hallo, ich bräuchte mal Hilfe, und zwar habe ich einen Code der auf eine im Qt Designer erstellte GUI zugreift. In dieser GUI wird ein Graph mit Toolbar erstellt. Wie könnte ich nun zum Beispiel Achsennamen oder anders einfügen?

Code: Alles auswählen

from PyQt5.uic import loadUiType

from matplotlib.figure import Figure
from matplotlib.backends.backend_qt4agg import ( FigureCanvasQTAgg as FigureCanvas, NavigationToolbar2QT as NavigationToolbar)
import sys
from PyQt5 import QtGui, QtCore, QtWidgets
import numpy as np
import matplotlib.pyplot as plt
# Gui aus der anderen Datei importieren
Ui_MainWindow, QMainWindow = loadUiType('window.ui.ui')

class Main(QMainWindow, Ui_MainWindow):
    def __init__(self, ):
        super(Main, self).__init__()
        self.setupUi(self)
 
    def addmpl(self, fig):
        self.canvas = FigureCanvas(fig)
        self.mplvl.addWidget(self.canvas)
        self.canvas.draw()
        self.toolbar = NavigationToolbar(self.canvas, self.mplfigs, coordinates=True)
        self.mplvl.addWidget(self.toolbar)
                


# nur wenn das Programm direkt abgerufen wird  
if __name__ == '__main__':
    
    
    fig1= Figure()
    ax1f1 = fig1.add_subplot(111)
    ax1f1.plot(np.random.rand(100))
    
    
  

# GUI öffnen 
    app = QtWidgets.QApplication(sys.argv) # startet die Gui-Loop
    main = Main() #benutzerdefinierte Anwendung erstellen
    main.addmpl(fig1) # fügt Graphen hinzu
    main.show() # öffnet die Gui
    sys.exit(app.exec_()) # schließt alles
	


Re: Graph in GUI ändern/bearbeiten

Verfasst: Sonntag 12. Januar 2020, 18:29
von einfachTobi

Re: Graph in GUI ändern/bearbeiten

Verfasst: Montag 13. Januar 2020, 16:27
von Laura98
vielen dank hab ich nach dem posten auch rausbekommen :)
ich habe nun noch einen button in die GUI eingefügt, weißt du wie ich dem eine Funktion zuordnen kann ?

Re: Graph in GUI ändern/bearbeiten

Verfasst: Montag 13. Januar 2020, 16:45
von Jankie

Re: Graph in GUI ändern/bearbeiten

Verfasst: Freitag 24. Januar 2020, 14:55
von Laura98
habe ein neue Probleme, und zwar habe ich nun eine checkbox die ein Hilfsgitter im Graph erzeugt, dies funktioniert auch allerdings nur wenn ich das Fenster einmal minimiere oder maximiere, ich schätze es fehlt eine update funktion.
Zweites Problem ist, dass ich einen Load Button besitze, damit öffne ich eine csv-Datei in dieser sind Zahlenwerte und diese sollen dann die Werte der Y-Achse sein. Dies funktioniert leider nicht lasse ich mir nur das "s" printen, sehe ich meine Werte er überträgt sie nur nicht in den Graph
hier mein aktueller Code

Code: Alles auswählen

from PyQt5.uic import loadUiType

from matplotlib.figure import Figure
from matplotlib.backends.backend_qt4agg import ( FigureCanvasQTAgg as FigureCanvas, NavigationToolbar2QT as NavigationToolbar)
import sys
from PyQt5 import QtGui, QtCore, QtWidgets
import numpy as np
import matplotlib.pyplot as plt
# Gui aus der anderen Datei importieren
QMainWindow, Ui_MainWindow = loadUiType('window.ui')

class Main(QMainWindow, Ui_MainWindow):
	
    def __init__(self, ):
        super(Main, self).__init__()
        self.setupUi(self)
        self.checkBoxRaster.clicked.connect(self.raster)
        self.pushButtonLaden.clicked.connect(self.laden)
 
    def addmpl(self, fig,):
        self.canvas = FigureCanvas(fig)
        self.mplvl.addWidget(self.canvas)
        self.canvas.draw()
        self.toolbar = NavigationToolbar(self.canvas, self.mplwindow, coordinates=True)
        self.mplvl.addWidget(self.toolbar)

    def raster(self):
        axis.grid(True)
        

    def laden(self):
        filename = QtWidgets.QFileDialog.getOpenFileName(filter = "(*.csv)")[0]
        d = open(filename, 'r')
        s = d.read()
        print(s)
          
        
        

# nur wenn das Programm direkt abgerufen wird  
if __name__ == '__main__':
    
    fig1= Figure()
    x = list(range(1,8))
    y = [1, 4, 6, 3, 5, 2, 7]
    axis = fig1.add_subplot(111)
    axis.plot(x, y)
    axis.set_xlabel('Wellenlänge in nm')
    axis.set_ylabel('Transmission')   
        	
    

    
        
        
    
         

       
		

        
# GUI öffnen 
    app = QtWidgets.QApplication(sys.argv) # startet die Gui-Loop
    main = Main() #benutzerdefinierte Anwendung erstellen
    main.addmpl(fig1) # fügt Graphen hinzu
    main.show() # öffnet die Gui
    sys.exit(app.exec_()) # schließt alles
	

Dankeschön :)