Как построить график в реальном времени / Dash Python Plotly Live Streaming с использованием sql server (pyodbc) в Python?
Может кто-нибудь дать мне подсказку или ссылку?
Эти 3 таблицы ниже - мои таблицы базы данных:
- Информация о продукте
1. Как построить график в реальном времени после захвата данных с сервера sql? Мой первый метод - использовать график в реальном времени с использованием sql. Однако это не мой ожидаемый график. Потому что я ожидал, что каждый "id" будет иметь 2 оси y [(год, продажи), (год, доход)]. Как построить 2 оси y с помощью этого метода?
sql = "SELECT * FROM dbo.smashTest WHERE condition='good'"
cursor = sql_conn.cursor()
cursor.execute(sql)
rows = cursor.fetchall()
for row in rows:
dataSQL.append(list(row))
labels = ['id','condition','sales','return','year']
df = pd.DataFrame.from_records(dataSQL, columns=labels)
X = df['year']
Y = df['sales']
Z=df['id']
data = plotly.graph_objs.Scatter(
x=list(X),
y=list(Y),
text=list(Z),
mode='lines+markers'
# connectgaps=False
)
return {'data': [data],'layout' : go.Layout(
xaxis={'title': 'year'},
yaxis={'title': 'sales'},
hovermode='closest')}
Второй метод использует фрейм данных, но он не работал так, как я ожидал.
df=pd.read_sql(sql,sql_conn)
pivot=pd.pivot_table(df, values=['return', 'sales'], index='year', columns='id')
X=pivot.index
Y=pivot.values
data = plotly.graph_objs.Scatter(
x=list(X),
y=list(Y),
# text=list(rd),
mode='lines+markers'
# connectgaps=False
)
return {'data': [data],'layout' : go.Layout(
xaxis={'title': 'year'},
yaxis={'title': 'sales'},
hovermode='closest')}
2. Сначала пользователь может выбрать модель и тест качества в выпадающем списке, затем на тире отобразится соответствующий график. Пример, выбранная пользователем модель: samsung и test: smash test, после чего будет отображаться график плохого, хорошего и лучшего состояния.