Advertisement
Guest User

Corrected graph embed

a guest
Apr 22nd, 2015
522
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 8.46 KB | None | 0 0
  1. from __future__ import unicode_literals
  2. from PyQt4 import QtCore, QtGui
  3. import os
  4. import time
  5. import sys
  6. from threading import *
  7. import random
  8. import numpy as np
  9. from matplotlib.pyplot import Figure
  10.  
  11. from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas
  12.  
  13. progname = os.path.basename(sys.argv[0])
  14. progversion = "0.1"
  15.  
  16. try:
  17.     _fromUtf8 = QtCore.QString.fromUtf8
  18. except AttributeError:
  19.     def _fromUtf8(s):
  20.         return s
  21.  
  22. try:
  23.     _encoding = QtGui.QApplication.UnicodeUTF8
  24.     def _translate(context, text, disambig):
  25.         return QtGui.QApplication.translate(context, text, disambig, _encoding)
  26. except AttributeError:
  27.     def _translate(context, text, disambig):
  28.         return QtGui.QApplication.translate(context, text, disambig)
  29.  
  30. class Ui_MainWindow(object):
  31.     def setupUi(self, MainWindow):
  32.         MainWindow.setObjectName(_fromUtf8("MainWindow"))
  33.         MainWindow.resize(800, 600)
  34.         self.centralwidget = QtGui.QWidget(MainWindow)
  35.         self.centralwidget.setObjectName(_fromUtf8("centralwidget"))
  36.         self.gridLayout_3 = QtGui.QGridLayout(self.centralwidget)
  37.         self.gridLayout_3.setObjectName(_fromUtf8("gridLayout_3"))
  38.         self.PropaanEquivalent = QtGui.QLabel(self.centralwidget)
  39.         self.PropaanEquivalent.setObjectName(_fromUtf8("PropaanEquivalent"))
  40.         self.gridLayout_3.addWidget(self.PropaanEquivalent, 4, 3, 1, 1)
  41.         self.CH4 = QtGui.QLabel(self.centralwidget)
  42.         self.CH4.setObjectName(_fromUtf8("CH4"))
  43.         self.gridLayout_3.addWidget(self.CH4, 2, 3, 1, 1)
  44.         self.CARI = QtGui.QLabel(self.centralwidget)
  45.         self.CARI.setObjectName(_fromUtf8("CARI"))
  46.         self.gridLayout_3.addWidget(self.CARI, 3, 0, 1, 1)
  47.         self.WobbeIndex = QtGui.QLabel(self.centralwidget)
  48.         self.WobbeIndex.setObjectName(_fromUtf8("WobbeIndex"))
  49.         self.gridLayout_3.addWidget(self.WobbeIndex, 2, 0, 1, 1)
  50.         self.WobbeIndexField = QtGui.QLineEdit(self.centralwidget)
  51.         self.WobbeIndexField.setObjectName(_fromUtf8("WobbeIndexField"))
  52.         self.gridLayout_3.addWidget(self.WobbeIndexField, 2, 1, 1, 1)
  53.         self.pushButton = QtGui.QPushButton(self.centralwidget)
  54.         self.pushButton.setObjectName(_fromUtf8("pushButton"))
  55.         self.gridLayout_3.addWidget(self.pushButton, 1, 0, 1, 1)
  56.         self.pushButton.clicked.connect(self.timer)
  57.         self.CARI_Field = QtGui.QLineEdit(self.centralwidget)
  58.         self.CARI_Field.setObjectName(_fromUtf8("CARI_Field"))
  59.         self.gridLayout_3.addWidget(self.CARI_Field, 3, 1, 1, 1)
  60.         self.CH4_field = QtGui.QLineEdit(self.centralwidget)
  61.         self.CH4_field.setObjectName(_fromUtf8("CH4_field"))
  62.         self.gridLayout_3.addWidget(self.CH4_field, 2, 4, 1, 1)
  63.         self.Propaan_field = QtGui.QLineEdit(self.centralwidget)
  64.         self.Propaan_field.setObjectName(_fromUtf8("Propaan_field"))
  65.         self.gridLayout_3.addWidget(self.Propaan_field, 4, 4, 1, 1)
  66.         self.Dichtheid = QtGui.QLabel(self.centralwidget)
  67.         self.Dichtheid.setObjectName(_fromUtf8("Dichtheid"))
  68.         self.gridLayout_3.addWidget(self.Dichtheid, 3, 3, 1, 1)
  69.         self.Verbrandingswaarde = QtGui.QLabel(self.centralwidget)
  70.         self.Verbrandingswaarde.setObjectName(_fromUtf8("Verbrandingswaarde"))
  71.         self.gridLayout_3.addWidget(self.Verbrandingswaarde, 4, 0, 1, 1)
  72.         self.Verbrandingswaarde_field = QtGui.QLineEdit(self.centralwidget)
  73.         self.Verbrandingswaarde_field.setObjectName(_fromUtf8("Verbrandingswaarde_field"))
  74.         self.gridLayout_3.addWidget(self.Verbrandingswaarde_field, 4, 1, 1, 1)
  75.         self.Dichtheid_field = QtGui.QLineEdit(self.centralwidget)
  76.         self.Dichtheid_field.setObjectName(_fromUtf8("Dichtheid_field"))
  77.         self.gridLayout_3.addWidget(self.Dichtheid_field, 3, 4, 1, 1)
  78.         spacerItem = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
  79.         self.gridLayout_3.addItem(spacerItem, 5, 2, 1, 1)
  80.         self.result_field = QtGui.QLineEdit(self.centralwidget)
  81.         self.result_field.setObjectName(_fromUtf8("result_field"))
  82.         self.gridLayout_3.addWidget(self.result_field, 1, 1, 1, 1)
  83.         self.aantalSensoren_label = QtGui.QLabel(self.centralwidget)
  84.         self.aantalSensoren_label.setObjectName(_fromUtf8("aantalSensoren_label"))
  85.         self.gridLayout_3.addWidget(self.aantalSensoren_label, 1, 3, 1, 1)
  86.         self.aantalSensoren_field = QtGui.QLineEdit(self.centralwidget)
  87.         self.aantalSensoren_field.setObjectName(_fromUtf8("aantalSensoren_field"))
  88.         self.gridLayout_3.addWidget(self.aantalSensoren_field, 1, 4, 1, 1)
  89.         MainWindow.setCentralWidget(self.centralwidget)
  90.         self.menubar = QtGui.QMenuBar(MainWindow)
  91.         self.menubar.setGeometry(QtCore.QRect(0, 0, 656, 21))
  92.         self.menubar.setObjectName(_fromUtf8("menubar"))
  93.         MainWindow.setMenuBar(self.menubar)
  94.         self.statusbar = QtGui.QStatusBar(MainWindow)
  95.         self.statusbar.setObjectName(_fromUtf8("statusbar"))
  96.         MainWindow.setStatusBar(self.statusbar)
  97.  
  98.         self.dc = MyMplCanvas(MainWindow, width=1, height=2, dpi=100)
  99.         self.gridLayout_3.addWidget(self.dc, 5, 0, 1, 5)
  100.  
  101.         self.retranslateUi(MainWindow)
  102.         QtCore.QMetaObject.connectSlotsByName(MainWindow)
  103.  
  104.     def retranslateUi(self, MainWindow):
  105.         MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow", None))
  106.         self.PropaanEquivalent.setText(_translate("MainWindow", "Propaan Equivalent:", None))
  107.         self.CH4.setText(_translate("MainWindow", "CH4:", None))
  108.         self.CARI.setText(_translate("MainWindow", "CARI:", None))
  109.         self.WobbeIndex.setText(_translate("MainWindow", "Wobbe Index:", None))
  110.         self.pushButton.setText(_translate("MainWindow", "Start", None))
  111.         self.Dichtheid.setText(_translate("MainWindow", "Dichtheid:", None))
  112.         self.Verbrandingswaarde.setText(_translate("MainWindow", "Verbrandingswaarde:", None))
  113.         self.aantalSensoren_label.setText(_translate("MainWindow", "aantal aangesloten sensoren:", None))
  114.  
  115.     def closeEvent(self, event):
  116.         reply = QtGui.QMessageBox.question(self, 'Message',
  117.             "Are you sure to quit?", QtGui.QMessageBox.Yes |
  118.             QtGui.QMessageBox.No, QtGui.QMessageBox.No)
  119.  
  120.         if reply == QtGui.QMessageBox.Yes:
  121.             event.accept()
  122.         else:
  123.             event.ignore()
  124.         self.fileQuit()
  125.  
  126.     def task(self):
  127.             self.dc.update_figure()
  128.  
  129.     def timer(self):
  130.         self.t = QtCore.QTimer()
  131.         self.t.timeout.connect(self.task)
  132.         self.t.start(1000)
  133.  
  134. def getCO22():
  135.     '''return the CO2 concentration in the atmosphere
  136.    '''
  137.     return 369.56 + random.random()*50
  138.  
  139.  
  140. class MyMplCanvas(FigureCanvas):
  141.     """Ultimately, this is a QWidget (as well as a FigureCanvasAgg, etc.)."""
  142.     def __init__(self, parent=None, width=5, height=4, dpi=100):
  143.         self.fig = Figure(figsize=(width, height), dpi=dpi)
  144.         super(MyMplCanvas,self).__init__(self.fig)
  145.         self.yAxe = np.array([0])
  146.         self.xAxe = np.array([0])
  147.         self.i = 0
  148.  
  149.         self.axes = self.fig.add_subplot(111)
  150.         self.axes.autoscale(False)
  151.         #We want the axes cleared every time plot() is called
  152.         self.axes.hold(False)
  153.         self.axes.set_ylim(0, 500)
  154.  
  155.         self.compute_initial_figure()
  156.  
  157.         FigureCanvas.__init__(self, self.fig)
  158.         self.setParent(parent)
  159.  
  160.         FigureCanvas.setSizePolicy(self,
  161.                                    QtGui.QSizePolicy.Expanding,
  162.                                    QtGui.QSizePolicy.Expanding)
  163.         FigureCanvas.updateGeometry(self)
  164.  
  165.     def compute_initial_figure(self):
  166.         self.axes.plot([0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0])
  167.  
  168.     def update_figure(self):
  169.         self.yAxe = np.append(self.yAxe, (getCO22()))
  170.         self.xAxe = np.append(self.xAxe, self.i)
  171.         print(self.xAxe, self.yAxe)
  172.         if len(self.yAxe) > 10:
  173.             self.yAxe = np.delete(self.yAxe, 0)
  174.  
  175.         if len(self.xAxe) > 10:
  176.             self.xAxe = np.delete(self.xAxe, 0)
  177.  
  178.         self.axes.plot(self.xAxe, self.yAxe)
  179.         self.axes.set_xlim(self.xAxe[0],self.xAxe[len(self.xAxe)-1])
  180.         self.axes.grid(True)
  181.  
  182.         self.i = self.i + 1
  183.  
  184.         self.fig.canvas.draw()
  185.         self.repaint()
  186.  
  187. # if  __name__ =='__main__':
  188. app = QtGui.QApplication(sys.argv)
  189. MainWindow = QtGui.QMainWindow()
  190. ui = Ui_MainWindow()
  191. ui.setupUi(MainWindow)
  192. MainWindow.show()
  193. sys.exit(app.exec_())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement