Вот это библиотека, которая занимается в реальное время черчения/записи данных (joystick), хотя Я не уверен, что он работает с jupyter. Вы можете установить его, используя обычный pip install joystick
.
Трудно сделать рабочее решение без дополнительной информации о ваших данных. Ниже приведен вариант:
import joystick as jk
import numpy as np
class test(jk.Joystick):
# initialize the infinite loop decorator
_infinite_loop = jk.deco_infinite_loop()
def _init(self, *args, **kwargs):
"""
Function called at initialization, see the docs
"""
# INIT DATA HERE
self.shape = (10, 4) # M, N
self.data = np.random.random(self.shape)
self.xaxis = range(self.shape[1])
############
# create a graph frame
self.mygraph = self.add_frame(
jk.Graph(name="TheName", size=(500, 500), pos=(50, 50),
fmt="go-", xnpts=self.shape[1], freq_up=5, bgcol="w",
xylim=(0, self.shape[1]-1, None, None)))
@_infinite_loop(wait_time=0.5)
def _generate_fake_data(self): # function looped every 0.5 second
"""
Loop starting with the simulation start, getting data and
pushing it to the graph every 0.5 seconds
"""
# NEW (RANDOM) DATA
new_data = np.random.random(self.shape[1])
# concatenate data
self.data = np.vstack((self.data, new_data))
# push new data to the graph
self.mygraph.set_xydata(self.xaxis, self.data[-1])
t = test()
t.start()
t.stop()
t.exit()
Этот код будет создать график, который автоматически обновляет 5 раз в секунду (freq_up = 5), в то время как новые данные (случайным образом) генерируется каждые 0,5 секунды (WAIT_TIME = 0,5) и нажата на график для отображения.
Если вы не хотите, чтобы ось Y вращалась, введите t.mygraph.xylim = (0, t.shape[1]-1, 0, 1)
.
Было бы лучше извлечь интересную информацию из этого ноутбука в этом ответе. – Raito