GUI mit Diagramm aus pandas

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
Antworten
fcz1896
User
Beiträge: 4
Registriert: Freitag 26. Oktober 2018, 14:10

Hallo Zusammen

Wir müssen für ein Projekt ein GUI erstellen, das zwei Datensätze grafisch darstellt. Wir haben mit dem pandas-Modul das gewünschte Diagramm erstellt, müssen dieses aber noch mit dem GUI verknüpfen, kann uns jemand hier weiterhelfen?

Code für das Diagramm:

Code: Alles auswählen

import pandas as pd
from pandas import DataFrame
from matplotlib import pyplot as plt
import datetime

sample = pd.read_csv("Flugbewegungen.csv", delimiter = ";", parse_dates=True )




headers_names = ["Ozon_höchstes_Stundenmittel", "Stickstoffdioxid","Feinstaub PM10"]
headers_names1 =["a","b"]
data = pd.read_csv('http://ogd.zueriluft.ch/api/v1/d1.csv'
                   ,header = None , delimiter=";", encoding = "latin1",skiprows = 6)

data1 = data[::-1]
data1 = data1.reset_index(drop=True)
 

sample1 = sample

#print (sample1)
sample1["O3_max_h1"] = data1[1]

sample1 = sample1[pd.notnull(sample1['O3_max_h1'])]


x = sample1.Datum
y1 = sample1.Gesamt
y2 = sample1.O3_max_h1

fig, ax1 = plt.subplots()

color = 'tab:red'
ax1.set_xlabel('Datum')
ax1.set_ylabel('Flugbewegungen', color=color)
ax1.plot(x, y1, color=color)
ax1.tick_params(axis='y', labelcolor=color)

ax2 = ax1.twinx()  # instantiate a second axes that shares the same x-axis

color = 'tab:blue'
ax2.set_ylabel('Ozon, höchstes Stundenmittel', color=color)  # we already handled the x-label with ax1
ax2.plot(x, y2, color=color)
ax2.tick_params(axis='y', labelcolor=color)

#fig.tight_layout()  # otherwise the right y-label is slightly clipped
plt.show()

Code für das GUI:

Code: Alles auswählen

from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_Dialog(object):
    def setupUi(self, Dialog):
        Dialog.setObjectName("Dialog")
        Dialog.resize(1400, 1100)
        Dialog.setMaximumSize(QtCore.QSize(1400, 1100))
        self.buttonBox = QtWidgets.QDialogButtonBox(Dialog)
        self.buttonBox.setGeometry(QtCore.QRect(1050, 1060, 341, 32))
        self.buttonBox.setOrientation(QtCore.Qt.Horizontal)
        self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.Cancel|QtWidgets.QDialogButtonBox.Ok)
        self.buttonBox.setObjectName("buttonBox")
        self.groupBox = QtWidgets.QGroupBox(Dialog)
        self.groupBox.setGeometry(QtCore.QRect(30, 80, 311, 241))
        self.groupBox.setObjectName("groupBox")
        self.checkBox = QtWidgets.QCheckBox(self.groupBox)
        self.checkBox.setGeometry(QtCore.QRect(20, 60, 161, 29))
        self.checkBox.setObjectName("checkBox")
        self.checkBox_2 = QtWidgets.QCheckBox(self.groupBox)
        self.checkBox_2.setGeometry(QtCore.QRect(20, 100, 161, 29))
        self.checkBox_2.setObjectName("checkBox_2")
        self.groupBox_2 = QtWidgets.QGroupBox(Dialog)
        self.groupBox_2.setGeometry(QtCore.QRect(50, 380, 281, 231))
        self.groupBox_2.setObjectName("groupBox_2")
        self.pushButton = QtWidgets.QPushButton(self.groupBox_2)
        self.pushButton.setGeometry(QtCore.QRect(10, 40, 191, 46))
        self.pushButton.setObjectName("pushButton")
        self.dateEdit_Ende = QtWidgets.QDateEdit(Dialog)
        self.dateEdit_Ende.setGeometry(QtCore.QRect(50, 890, 201, 101))
        self.dateEdit_Ende.setObjectName("dateEdit_Ende")
        self.dateEdit_Start = QtWidgets.QDateEdit(Dialog)
        self.dateEdit_Start.setGeometry(QtCore.QRect(50, 740, 201, 91))
        self.dateEdit_Start.setObjectName("dateEdit_Start")
        self.label_2 = QtWidgets.QLabel(Dialog)
        self.label_2.setGeometry(QtCore.QRect(50, 690, 211, 41))
        self.label_2.setObjectName("label_2")
        self.label_3 = QtWidgets.QLabel(Dialog)
        self.label_3.setGeometry(QtCore.QRect(50, 850, 211, 41))
        self.label_3.setObjectName("label_3")
        self.widget_plot = QtWidgets.QWidget(Dialog)
        self.widget_plot.setGeometry(QtCore.QRect(370, 50, 1011, 781))
        self.widget_plot.setStyleSheet("background-color: rgb(255, 255, 255);")
        self.widget_plot.setObjectName("widget_plot")
        self.gridLayoutWidget = QtWidgets.QWidget(self.widget_plot)
        self.gridLayoutWidget.setGeometry(QtCore.QRect(9, 9, 991, 761))
        self.gridLayoutWidget.setObjectName("gridLayoutWidget")
        self.Layout_plot = QtWidgets.QGridLayout(self.gridLayoutWidget)
        self.Layout_plot.setContentsMargins(0, 0, 0, 0)
        self.Layout_plot.setSpacing(0)
        self.Layout_plot.setObjectName("Layout_plot")

        self.retranslateUi(Dialog)
        QtCore.QMetaObject.connectSlotsByName(Dialog)
        Dialog.setTabOrder(self.checkBox, self.pushButton)
        Dialog.setTabOrder(self.pushButton, self.dateEdit_Start)
        Dialog.setTabOrder(self.dateEdit_Start, self.dateEdit_Ende)

    def retranslateUi(self, Dialog):
        _translate = QtCore.QCoreApplication.translate
        Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
        self.groupBox.setTitle(_translate("Dialog", "GroupBox_ Art Verschmutzung"))
        self.checkBox.setText(_translate("Dialog", "Schadstoff 1"))
        self.checkBox_2.setText(_translate("Dialog", "Flugbewegungen"))
        self.groupBox_2.setTitle(_translate("Dialog", "GroupBox_Ort"))
        self.pushButton.setText(_translate("Dialog", "Stampfenbachstr."))
        self.label_2.setText(_translate("Dialog", "Startdatum"))
        self.label_3.setText(_translate("Dialog", "Enddatum"))


if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    Dialog = QtWidgets.QDialog()
    ui = Ui_Dialog()
    ui.setupUi(Dialog)
    Dialog.show()
    sys.exit(app.exec_())


Vielen Dank für eure Hilfe im Voraus!
Antworten