import panel as pn from streamz import Stream pn.extension('vega') def increment(x): return x + 1 source = Stream() streamz_pane = pn.pane.Streamz(source.map(increment), always_watch=True) # Note: To ensure that a static render of the stream displays anything # we set always_watch=True and emit an event before displaying source.emit(1) streamz_pane count = 1 def emit_count(): global count count += 1 source.emit(count) pn.state.add_periodic_callback(emit_count, period=100); import numpy as np import altair as alt import pandas as pd from datetime import datetime from streamz.dataframe import DataFrame as sDataFrame df = sDataFrame(example=pd.DataFrame({'y': []}, index=pd.DatetimeIndex([]))) def line_plot(data): return alt.Chart(pd.concat(data).reset_index()).mark_line().encode( x='index', y='y', ) altair_stream = df.cumsum().stream.sliding_window(50).map(line_plot) altair_pane = pn.pane.Streamz(altair_stream, height=350, always_watch=True) for i in range(100): df.emit(pd.DataFrame({'y': [np.random.randn()]}, index=pd.DatetimeIndex([datetime.now()]))) altair_pane def emit(): df.emit(pd.DataFrame({'y': [np.random.randn()]}, index=pd.DatetimeIndex([datetime.now()]))) pn.state.add_periodic_callback(emit, period=100);