import numpy as np
import pandas as pd
import panel as pn
pn.extension('perspective', sizing_mode='stretch_width')
This example demonstrates the powerful streaming capabilities of the Perspective
pane.
df = pd.DataFrame(np.random.randn(10, 4), columns=list('ABCD')).cumsum()
rollover = pn.widgets.IntInput(name='Rollover', value=15)
perspective = pn.pane.Perspective(
df, sizing_mode='stretch_width', height=400, theme='material-dark'
)
def stream():
data = df.iloc[-1] + np.random.randn(4)
perspective.stream(data, rollover=rollover.value)
cb = pn.state.add_periodic_callback(stream, 50)
component = pn.Column(
pn.Row(cb.param.period, rollover, perspective.param.theme),
perspective,
pn.layout.HSpacer(height=35), # Needed if user selects vaporwave theme in template
)
component
Lets wrap it into nice template that can be served via panel serve streaming_perspective.ipynb
pn.template.FastListTemplate(
site="Panel",
title="Streaming Perspective",
main=[
"This example demonstrates the **powerful streaming capabilities** of Panel and the `Perspective` pane.",
component,
]
).servable();