Veritabanında her saniye artan değeri matplotlibde gösterme

Arkadaşlar bir yerde tıkandım

Veritabanımda sürekli artan değerin ve bu değere bağlı olarak değişen grafiği anlık matplotlibde göstermek istiyorum. Ama canlı grafik olayını beceremedim yardımınızı istiyorum
Kodum şu şekilde;

from ui_main import Ui_MainWindow
from PyQt5.QtWidgets import *
from threading import Thread
import pandas as pd
from os.path import dirname, realpath
from PyQt5.QtWidgets import  QMainWindow
from database import db
from matplotlib.figure import Figure
import sqlite3
import pywifi
import time
import datetime
import matplotlib.dates as mdates
from matplotlib.animation import FuncAnimation
from IPython.display import display, clear_output
from PyQt5.QtCore import QTimer,QDateTime
import _thread
from matplotlib.axes._subplots import Axes
from matplotlib.figure import Figure
from PyQt5.QtCore import pyqtSignal
from PyQt5.QtGui import *






import matplotlib.pyplot as plt

from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas
from PyQt5 import QtWidgets
class MplCanvas(FigureCanvas):

    def __init__(self, parent=None, width=5, height=4, dpi=100):
        fig = Figure(figsize=(width, height), dpi=dpi)


        self.axes = fig.add_subplot(111)




        super(MplCanvas, self).__init__(fig)



class toogle_menu (QMainWindow):

    def __init__(self,*args,**kwargs):
        super(toogle_menu, self).__init__(*args, **kwargs)
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)


        self.ana_menu_page_index = 1
        self.kullanici_girisi_page_index = 2
        self.kumes_uretim_page_index = 6
        self.uretim_grafgi_page_index = 4
        self.kat_izleme_page_index = 5
        self.son_page=3
        self.ui.actionKGOnay.triggered.connect(self.kg_onay)
        self.ui.actionKG.triggered.connect(self.kg_page)
        self.ui.actionKUK.triggered.connect(self.kuk_page)
        self.ui.actionUG.triggered.connect(self.ug_page)
        self.ui.actionKI.triggered.connect(self.ki_page)
        self.ui.actionAM.triggered.connect(self.ana_menu)
        self.ui.actionAM.triggered.connect(self.thread)
        self.ui.actionAgyenileme.triggered.connect(self.Agyenileme)
        self.ui.pushButton_33.clicked.connect(self.veri_alma)
        self.ui.pushButton_3.clicked.connect(self.sifre_page)
        self.ui.pushButton_37.clicked.connect(self.sifre_geri_git)
        self.ui.pushButton_36.clicked.connect(self.sifre_sifirlama)
        self.ui.pushButton_10.clicked.connect(self.gunluk7)
        self.ui.pushButton_35.clicked.connect(self.grafik_sil)
        self.ui.pushButton_7.clicked.connect(self.son_1_ay)
        self.ui.pushButton_8.clicked.connect(self.son_3_ay)
        self.ui.pushButton_9.clicked.connect(self.son_1_sene)
        self.ui.push_iletisim.clicked.connect(self.ana_menu_iletisim)
        self.ui.pushButton_11.clicked.connect(self.usb_aktar)
        self.ui.guncel_veri.clicked.connect(self.verisorgula)
        self.acilis_page()
        self.baglanti = sqlite3.connect('C:\egg_otomasyon\egg.db')
        self.im = self.baglanti.cursor()
        ilk_tablo = """CREATE TABLE IF NOT EXISTS egg_tablo(Isletme VARCHAR(40),Kumes INTEGER, Hayvan INTEGER ,kayit_saati INTEGER)"""
        count_tablo="""CREATE TABLE IF NOT EXISTS count_tablo(Tarih TEXT,Count INTEGER)"""
        self.im.execute(ilk_tablo)
        self.im.execute(count_tablo)
        self.baglanti.commit()



    def thread(self):
        t1 = Thread(target=self.denemethread())
        t1.start()
    def denemethread(self):
        self.ui.lcdNumber.display(str(self.im.execute("""SELECT Count FROM count_tablo""").fetchall()[-1][0]))
        self.ui.lcdNumber.update()
    def verisorgula(self):
        self.baglanti = sqlite3.connect('C:\egg_otomasyon\egg.db')
        self.im = self.baglanti.cursor()
        print(self.im.execute("""SELECT Count FROM count_tablo""").fetchall()[-1][0])
        self.ui.lcdNumber.display(str(self.im.execute("""SELECT Count FROM count_tablo""").fetchall()[-1][0]))
        self.ui.lcdNumber.update()
    def usb_aktar(self):
        egg = self.im.execute("""SELECT Count FROM count_tablo""")
        yumurta = egg.fetchall()

        date_ = self.im.execute("""SELECT Tarih FROM count_tablo""")
        tarih = date_.fetchall()
        df = pd.DataFrame(columns=['tarih','yumurta'])
        for ix in range(len(yumurta)):
            df = df.append({'tarih': tarih[ix][0],'yumurta': yumurta[ix][0]}, ignore_index=True)
        print(df)
        df.to_excel("output.xlsx")
    def ana_menu_iletisim(self):
        self.acilis_page()

    def sifre_sifirlama(self):
        sifre="1453"
        sifirlama_line=self.ui.sifirlama_line.text()
        if sifre==sifirlama_line:
            self.ui.isletme_line.setEnabled(True)
            self.ui.kumes_combobox.setEnabled(True)
            self.ui.hayvan_line.setEnabled(True)
            self.ui.kayit_saat_combobox.setEnabled(True)

            self.im.execute("""DELETE FROM egg_tablo""")
            self.ui.statusBar.showMessage("Veriler Başarı ile Silindi",2000)
            self.statusBar().setStyleSheet("background-color : white")
            self.ui.sifirlama_line.clear()
        else:
            messagebox = QMessageBox()
            messagebox.setIcon(QMessageBox.Warning)
            messagebox.setWindowTitle("Hatalı Giriş")
            messagebox.setText(
                "Şifre Hatalı")
            messagebox.setStandardButtons(QMessageBox.Ok)
            buton_ok = messagebox.button(QMessageBox.Ok)
            buton_ok.setText("Tamam")
            messagebox.exec_()
    def sifre_page(self):
        self.ui.stackedWidget.setCurrentIndex(self.son_page)
    def sifre_geri_git(self):
        self.ui.stackedWidget.setCurrentIndex(self.kullanici_girisi_page_index)
        self.ui.sifirlama_line.clear()
    def int_kontroll(self,hayvan):
        for kontrol in hayvan :
            x = kontrol.isalpha()
            if x == True:
                return x
    def int_kontrol(self,isletme):
        for kontrol in isletme :
            x = kontrol.isdigit()
            if x == True:
                return x


    #Thread
    #Timer
    #FuncAnimasition



    def gunluk7(self):






        self.baglanti = sqlite3.connect('C:\egg_otomasyon\egg.db')
        self.im = self.baglanti.cursor()
        self.tarih= [tarih[0] for tarih in self.im.execute("""SELECT Tarih FROM count_tablo ORDER BY Tarih DESC LIMIT 7 """).fetchall()]

        #a=self.im.execute("""SELECT Count,Tarih FROM count_tablo ORDER BY Count DESC LIMIT 7 """)
        #data=pd.read_sql(a,self.baglanti)
        self.yumurta= [yumurta[0] for yumurta in self.im.execute("""SELECT Count FROM count_tablo ORDER BY Tarih DESC LIMIT 7 """).fetchall()]







        self.baglanti.commit()
        self.sc = MplCanvas(self, width=5, height=4, dpi=100)
        self.sc.axes.clear()
        self.sc.axes.plot(self.tarih,self.yumurta,color="#f05131")
        #ters çevirme
        self.sc.axes.invert_xaxis()
        self.sc.draw()






        #self.sc.flush_events()




        #self.sc.axes.bar(tarih, yumurta, color="#f05131")
        self.layout = QtWidgets.QVBoxLayout()
        self.layout.addWidget(self.sc)
        self.ui.widget.setLayout(self.layout)
        self.ui.widget.raise_()
        self.ui.widget_5.lower()
        self.ui.widget_4.lower()
        self.ui.widget_2.lower()
        self.ui.widget_3.lower()


    def son_1_ay(self):
        self.baglanti = sqlite3.connect('C:\egg_otomasyon\egg.db')
        self.im = self.baglanti.cursor()
        tarih= [tarih[0] for tarih in self.im.execute("""SELECT Tarih FROM count_tablo ORDER BY Tarih DESC LIMIT 30""").fetchall()]
        # TARİH EKRANA SIĞMADIĞI İÇİN İPTAL ETTİM
        yumurta= [yumurta[0] for yumurta in self.im.execute("""SELECT Count FROM count_tablo ORDER BY Tarih DESC LIMIT 30 """).fetchall()]


        self.baglanti.commit()
        '''
        timer = self.sc_1.new_timer(interval=100)
        timer.single_shot = True
        timer.add_callback(lambda: yumurta)
        timer.start()
        '''
        liste=[]
        for i in range(len(yumurta)):
            liste.append(i+1)
        self.sc_1 = MplCanvas(self, width=5, height=4, dpi=100)
        #toolbar = NavigationToolbar(self.sc_1, self)
        self.sc_1.axes.bar(tarih,yumurta,color="#f05131")
        self.sc_1.figure.autofmt_xdate()













        self.sc_1.axes.invert_xaxis()



        self.layout_1 = QtWidgets.QVBoxLayout()
        self.layout_1.addWidget(self.sc_1)
        #self.layout_1.addWidget(toolbar)
        self.ui.widget_3.setLayout(self.layout_1)

        #self.ui.widget_3.update()
        self.ui.widget_3.raise_()
        self.ui.widget_3.update()
        self.ui.widget_5.lower()
        self.ui.widget_4.lower()
        self.ui.widget_2.lower()
        self.ui.widget.lower()
    def son_3_ay(self):
        tarih = [tarih[0] for tarih in self.im.execute("""SELECT Tarih FROM count_tablo ORDER BY Tarih DESC LIMIT 90 """).fetchall()]
        yumurta = [yumurta[0] for yumurta in self.im.execute("""SELECT Count FROM count_tablo ORDER BY Tarih DESC LIMIT 90 """).fetchall()]

        liste = []
        for i in range(len(yumurta)):
            liste.append(i + 1)

        self.sc_3= MplCanvas(self, width=5, height=4, dpi=100)
        self.sc_3.axes.bar(tarih,yumurta,color="#f05131")
        self.sc_3.axes.invert_xaxis()
        self.sc_3.figure.autofmt_xdate()

        self.layout_3 = QtWidgets.QVBoxLayout()
        self.layout_3.addWidget(self.sc_3)
        self.ui.widget_4.setLayout(self.layout_3)
        self.ui.widget_4.raise_()
        self.ui.widget_5.lower()
        self.ui.widget_3.lower()
        self.ui.widget_2.lower()
        self.ui.widget.lower()
    def son_1_sene(self):
        tarih = [tarih[0] for tarih in
                 self.im.execute("""SELECT Tarih FROM count_tablo ORDER BY Tarih DESC LIMIT 365 """).fetchall()]
        yumurta = [yumurta[0] for yumurta in
                   self.im.execute("""SELECT Count FROM count_tablo ORDER BY Tarih DESC LIMIT 365 """).fetchall()]
        liste = []
        for i in range(len(yumurta)):
            liste.append(i + 1)
        self.sc_4 = MplCanvas(self, width=5, height=4, dpi=100)
        self.sc_4.axes.bar(liste, yumurta, color="#f05131")
        self.sc_4.axes.invert_xaxis()
        self.layout_4 = QtWidgets.QVBoxLayout()
        self.layout_4.addWidget(self.sc_4)
        self.ui.widget_5.setLayout(self.layout_4)
        self.ui.widget_5.update()
        self.ui.widget_5.raise_()
        self.ui.widget_4.lower()
        self.ui.widget_3.lower()
        self.ui.widget_2.lower()
        self.ui.widget.lower()
    def grafik_sil(self):

        self.sc.axes.clear()

        self.tarih = [tarih[0] for tarih  in self.im.execute("""SELECT Tarih FROM count_tablo ORDER BY Tarih DESC LIMIT 7 """).fetchall()]

        # a=self.im.execute("""SELECT Count,Tarih FROM count_tablo ORDER BY Count DESC LIMIT 7 """)
        # data=pd.read_sql(a,self.baglanti)
        self.yumurta = [yumurta[0] for yumurta in self.im.execute("""SELECT Count FROM count_tablo ORDER BY Tarih DESC LIMIT 7 """).fetchall()]

        self.sc.axes.plot(self.tarih,self.yumurta,color='b')
        self.sc.draw()




        self.layoutt=QtWidgets.QVBoxLayout()
        self.ui.widget_2.setLayout(self.layoutt)
        self.ui.widget_2.raise_()








        #self.ui.widget.update()
    def veri_alma(self):
        isletme=self.ui.isletme_line.text()
        kumes=self.ui.kumes_combobox.currentText()
        hayvan=self.ui.hayvan_line.text()
        kayit_saat=self.ui.kayit_saat_combobox.currentText()
        kontrol1 = 1
        kontrol2 = 1
        kontrol3 = 1
        if isletme == "" or kumes == "" or hayvan == "" or kayit_saat == "":
            messagebox = QMessageBox()
            messagebox.setIcon(QMessageBox.Warning)
            messagebox.setWindowTitle("Hatalı Giriş")
            messagebox.setText(
                "Bu alan boş bırakılamaz")
            messagebox.setStandardButtons(QMessageBox.Ok)
            buton_ok = messagebox.button(QMessageBox.Ok)
            buton_ok.setText("Tamam")
            messagebox.exec_()
            kontrol3 = 0
        if self.int_kontrol(isletme):
            messagebox = QMessageBox()
            messagebox.setIcon(QMessageBox.Warning)
            messagebox.setWindowTitle("Hatalı Giriş")
            messagebox.setText(
                "Rakam giremezsiniz")
            messagebox.setStandardButtons(QMessageBox.Ok)
            buton_ok = messagebox.button(QMessageBox.Ok)
            buton_ok.setText("Tamam")
            messagebox.exec_()
            kontrol1=0
        if self.int_kontroll(hayvan):
            messagebox = QMessageBox()
            messagebox.setIcon(QMessageBox.Warning)
            messagebox.setWindowTitle("Hatalı Giriş")
            messagebox.setText(
                "Harf giremezsiniz")
            messagebox.setStandardButtons(QMessageBox.Ok)
            buton_ok = messagebox.button(QMessageBox.Ok)
            buton_ok.setText("Tamam")
            messagebox.exec_()
            kontrol2 = 0
        if kontrol1==1 and kontrol2==1 and kontrol3 ==1:
            self.ui.isletme_line.setEnabled(False)
            self.ui.kumes_combobox.setEnabled(False)
            self.ui.hayvan_line.setEnabled(False)
            self.ui.kayit_saat_combobox.setEnabled(False)
            self.im.execute(
                "INSERT INTO egg_tablo(Isletme,Kumes,Hayvan,kayit_saati) VALUES(?,?,?,?)",
                [isletme,kumes,hayvan,kayit_saat])
            self.baglanti.commit()
            self.ui.statusBar.showMessage("Kayıt Başarılı",1000)
            self.statusBar().setStyleSheet("background-color : white")
    def acilis_page(self):
        self.ui.stackedWidget.setCurrentIndex(0)
    def ana_menu(self):
        self.ui.stackedWidget.setCurrentIndex(self.ana_menu_page_index)
        sql = self.im.execute("""SELECT Isletme FROM egg_tablo""")
        sql_1 = sql.fetchall()
        saat=datetime.date.today()
        saat_1=saat.strftime("%d/%m/%Y")
        self.ui.label_10.setText(saat_1)
        if sql_1:
            sql = self.im.execute("""SELECT Isletme,Kumes FROM egg_tablo""")
            sql_1 = sql.fetchall()
            ilk_deger = sql_1[0][0]
            son_deger = sql_1[0][1]
            print("ilk_deger", ilk_deger)
            self.ui.label_20.setText(ilk_deger)
            self.ui.label_8.setText(str(son_deger))
        else:
            self.ui.label_20.setText("Lütfen kurulum yapınız")

    def kg_page(self):
        self.ui.stackedWidget.setCurrentIndex(self.kullanici_girisi_page_index)
    def kuk_page(self):
        self.ui.stackedWidget.setCurrentIndex(self.kumes_uretim_page_index)
    def ug_page(self):
        self.ui.stackedWidget.setCurrentIndex(self.uretim_grafgi_page_index)
    def ki_page(self):
        self.ui.stackedWidget.setCurrentIndex(self.kat_izleme_page_index)
    def kg_onay(self):
        self.ui.textBrowser_2.setText("o_o")
    def Agyenileme(self):
        apapap = ["5", "asd", "dsa"]
        wifi = pywifi.PyWiFi()
        iface = wifi.interfaces()[0]
        iface.scan()
        time.sleep(0.5)
        results = apapap
        for i in results:
            bssid = i.bssid
            ssid = i.ssid
            print(f"{ssid}")
            self.ui.comboBox_3.addItems(ssid)




scriptDir=dirname(realpath(__file__))



arkada göstermek istediğim fake data:

import sqlite3
import datetime
import time
from datetime import date
i= 0
def fakecount():
    global i
    i = i + 3

baglanti = sqlite3.connect('C:\egg_otomasyon\egg.db')
im = baglanti.cursor()

while True:
    fakecount()
    print(i)
    time.sleep(1)
    im.execute("""UPDATE count_tablo SET Count=? WHERE Tarih=?""", [i,'2022-06-11'])
    baglanti.commit()