I am trying to get the streaming to work such that as data values are sent using send
, the plot in the dashboard is updated in real-time.
I tried to attach the notebook I am using but Discourse didn’t seem to let me. So here is the script.
What am I doing wrong? Thanks in advance.
#!/usr/bin/env python
# coding: utf-8
import time
import numpy as np
import pandas as pd
import holoviews as hv
import panel as pn
from holoviews import opts
from holoviews.streams import Buffer
hv.extension('bokeh')
example = pd.DataFrame({'x': [], 'y': [], }, columns=['x', 'y',])
dfstream = Buffer(example, length=4, index=False)
curve_dmap = hv.DynamicMap(hv.Curve, streams=[dfstream])
def view(curve_dmap):
template = pn.template.FastGridTemplate(
title="Streaming Dashboard example",
)
template.main[0:7, 0:12] = pn.Column(curve_dmap)
return template
curve_dmap.opts(color='green', xlim=(-10, 10), ylim=(-10, 10), show_legend=True)
def run():
for i in range(7):
dfstream.send(pd.DataFrame([(np.random.randn(), np.random.randn(),)], columns=['x', 'y', ]))
print('sending')
time.sleep(1)
if __name__.startswith("bokeh"):
pn.state.onload(run)
view(curve_dmap).servable()