✊🏿 Black Lives Matter. Please consider donating to Black Girls Code today.
🐇 Announcing Dash VTK for 3d simulation graphics. Check out the March webinar.

Realtime dash data mysql not working

I’ve written code below, but not working. It reads data from mysql and then display in real time. When I run, it is not working -not plotting and and moving as it should be. Any help is appreciated.

import dash
import dash_core_components as dcc
import dash_html_components as html
from dash.dependencies import Output,Event

import mysql.connector
import plotly
import plotly.graph_objs as go
from collections import deque
import pyodbc

def mydb(host,user,passwd,db):
connMySQL=mysql.connector.connect(
host=host,
user=user,
passwd=passwd,
db=db,
autocommit = True
)
return connMySQL

name_title = ‘Stats from MySQL’
app=dash.Dash(name)

app.layout = html.Div(children=[
html.H1(children = ‘Read real-time data from MySQL on scatter plot’),

dcc.Graph(
    id='example-graph',
    animate=True),
dcc.Interval(
    id='graph-update',
    interval=1*1000),

])

@app.callback(Output(‘example-graph’,‘figure’),
events=[Event(‘graph-update’,‘interval’)])

def update_graph_scatter():
dataSQL= []
X= deque(maxlen=10)
Y= deque(maxlen=10)

sql_conn = mydb(' ....')
cursor=sql_conn.cursor()
cursor.execute("SELECT id,windsp FROM ...")

rows = cursor.fetchall()


for row in rows:   
    dataSQL.append(list(row))  

    labels=['id','windsp'] 

    df = pd.DataFrame.from_records(dataSQL,columns=labels)  
    
    X= df ['id']
    Y= df ['windsp']

    data = plotly.graph_objs.Scatter(
        x=list(X),   
        y=list(Y),  
        name = 'Scater',
        mode = 'lines+markers'
    )

    return{
        'data':[data],'layout':go.Layout(
           xaxis=dict(range = [min(X),max(X)]),  
           yaxis=dict(range =[min(Y),max(Y)]),    
        )
    } 

if name == “main”:
app.run_server(debug=True)