使用Pyqt5中的数据帧创建图表

2024-09-30 18:23:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在尝试嵌入一个图形,我正在使用QT设计器的用户界面。 我读了here,但仍然不明白如何从dataframe创建图形,因为在那个示例中,它们是通过随机数据创建的。还有一个问题,我可以用QT设计器中的哪个小部件来显示这个图

import sys
import koneksi_rsam
import pandas as pd
from PyQt5 import QtCore, QtWidgets, uic
from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas
from matplotlib.backends.backend_qt5agg import NavigationToolbar2QT as NavigationToolbar
import matplotlib.pyplot as plt
Ui_MainWindow, QtBaseClass = uic.loadUiType("datetime2.ui")

class MyApp(QtWidgets.QMainWindow):

    def __init__(self):
        super(MyApp,self).__init__()
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)
        self.ui.pushButton.clicked.connect(self.GetDatetime)
        self.ui.dateTimeEdit.setDateTime(QtCore.QDateTime.currentDateTime())
        self.ui.dateTimeEdit.setDisplayFormat("yyyy-MM-dd hh:mm:ss")


    def GetDatetime(self):
        dt = self.ui.dateTimeEdit.dateTime()
        dt_string = dt.toString(self.ui.dateTimeEdit.displayFormat())
        data_rsam = koneksi_rsam.normalisasi(dt_string)
        self.ui.textEdit.setText("Now : "+ str(dt_string))  
        model = DataFrameModel(data_rsam)
        self.ui.tableView.setModel(model)

    def plot(self):
        dt = self.ui.dateTimeEdit.dateTime()
        dt_string = dt.toString(self.ui.dateTimeEdit.displayFormat())
        data_rsam = koneksi_rsam.normalisasi(dt_string)



if __name__ == "__main__":
    app = QtWidgets.QApplication.instance()
    if app is None:
        app = QtWidgets.QApplication(sys.argv)
    window = MyApp()
    window.show()
    sys.exit(app.exec())

因此,在函数plot中,我使用datarsam变量以dataframe格式存储数据

我期望的绘图函数在这里,我可以使用python编译器打开,但我不知道如何在QT designer中实现:

data_rsam.set_index('ss_time', inplace=True)
data_rsam.index = pd.to_datetime(graph.index)
data_rsam.plot(style='.-',marker='o')
import matplotlib.pyplot as plt
plt.show()

Tags: importselfappuidatastringmatplotlibas