Ich führe ein Jupyter -Notizbuch in VSCODE aus.
Ich möchte Plotly (oder irgendetwas anderes, aber ich versuche dies als potenzielle Lösung) verwenden, um Daten dynamisch zu zeichnen, wie sie generiert werden. Im Folgenden generiere ich einige gefälschte Daten und aktualisiere dann die Plotly -Abbildung, um zu simulieren, dass Daten in Echtzeit generiert werden. Die zweite Zelle tut das, was ich am meisten interessiere. Wenn ich 'Ntraces' auf 1 reduziere, wird es viel schneller, was darauf hindeutet, dass ein Teil des Engpasses durch jede der Spuren individuell iterieren muss, um die Daten zu aktualisieren. Es scheint, dass wenn es eine Möglichkeit gäbe, ein 2D-Array zu aktualisieren, anstatt eine Reihe separater 1D-Arrays, kann es schneller sein.
Code: Select all
import plotly.graph_objects as go
import numpy as np
import random
T = 20
tvals = np.arange(1, 101, 2)
noise_amp = 0.25
tau = 60
ntraces = 32
traces = np.arange(0, ntraces, 1)
tarray = np.arange(1, 51, 2)
pvalsArray = [np.array([np.sin(2*np.pi*tval/T)*np.exp(-tval/tau)+random.random()*noise_amp for tval in tarray]) for _ in traces]
fig = go.FigureWidget()
for i, ion in enumerate(traces):
fig.add_trace(go.Scatter(x=tarray, y=pvalsArray[i][0:1], mode='lines+markers', name='lines'))
fig.show()
< /code>
for j, tval in enumerate(tarray):
for i in range(len(traces)):
fig.data[i].x = tarray[:j]
fig.data[i].y = pvalsArray[i][0:j]