Надеюсь, ты в безопасности и здоров. Я работаю над своим дипломным проектом, и в последнюю минуту профессор потребовал, чтобы я построил график данных датчика ЭКГ в реальном времени, который фиксируется с частотой 200 Гц (каждые 5 мс), и после некоторых исследований я обнаружил Da sh, который, казалось, был отличный инструмент, который сэкономит мне много времени, которого у меня действительно нет ...
проблема, с которой я сталкиваюсь, заключается в том, что всякий раз, когда я использую интервал обновления до значения <600 мс, весь экран начинает мерцать и перерисовка всего графика вместо обновления (добавления дополнительных значений) графика. Кажется, он отлично работает с интервалом обновления> = 600 мс.
вот код, с которым я работаю:
sig = []
with open("test_data7_ms.csv", "r") as csv_file:
csv_reader = csv.reader(csv_file, delimiter=',')
for lines in csv_reader:
sig.append((lines[0]))
# sig is an array created from a file that contains the sensor readings
# just to simulate the work of the sensor without the hassle with cables and everything
sig_iter = iter(sig)
x = deque(maxlen=5)
x.append(1)
Y = deque(maxlen=5)
Y.append(next(sig_iter, 400))
app = dash.Dash()
app.layout = html.Div(
[
dcc.Graph(id='ecg-graph',
animate=True),
dcc.Interval(
id='ecg-graph-update',
interval=500,
n_intervals=0
),
]
)
@app.callback(Output('ecg-graph', 'figure'),
[Input('ecg-graph-update', 'n_intervals')])
def update_ecg(n):
x.append(x[-1]+1)
Y.append(next(sig_iter, 400))
trace = go.Scatter(
x=list(x),
y=list(Y),
name='Scatter',
mode='lines'
)
return {'data': [trace], 'layout': go.Layout(xaxis=dict(range=[min(x), max(x)]),
yaxis=dict(range=[100, 900]),)}
if __name__ == "__main__":
app.run_server(debug=True)
Если кто-нибудь знает, как решить эту проблему или есть какие-либо предложения относительно Da sh или другой структуры / библиотеки, я буду очень признателен за помощь.