Here is a Layout Example
import numpy as np
import pandas as pd
import panel as pn
pn.extension(sizing_mode="stretch_width")
pd.options.plotting.backend = "holoviews"
def new_plot():
ts = pd.Series(np.random.randn(1000), index=pd.date_range("1/1/2000", periods=1000))
ts = ts.cumsum()
return ts.plot(title="Plot", height=400, color="#A01346", line_width=5)
# Accordion, Column, Row, Tabs, WidgetBox
container = pn.Column()
def add_plot(*events):
container.append(new_plot())
add_plot()
add_plot_button = pn.widgets.Button(name="ADD PLOT", button_type="primary")
add_plot_button.on_click(add_plot)
def remove_plot(*events):
if len(container)>0:
container.pop(len(container)-1)
remove_plot_button = pn.widgets.Button(name="REMOVE PLOT", button_type="success")
remove_plot_button.on_click(remove_plot)
pn.template.FastListTemplate(
title="Dynamic Layouts with Panel",
sidebar = [add_plot_button, remove_plot_button],
main=[container,]
).servable()