rindis
December 13, 2019, 4:50am
1
See the below gif demonstrating the problem. The initial scaling (or stretching) applied by GridSpec breaks when the plot held by the DynamicMap updates. Code copy-pasted below
import panel as pn
import holoviews as hv
import numpy as np
pn.extension()
select_widget = pn.widgets.Checkbox(name='select')
@pn.depends(select=select_widget.param.value)
def get_points(select):
if select:
return hv.Points(np.random.rand(10,10)).opts(title='A')
else:
return hv.Points(np.random.rand(10,10)).opts(title='B')
plot = hv.DynamicMap(get_points)
grid_layout = pn.GridSpec(sizing_mode='scale_both')
grid_layout[0,0] = plot
app = pn.Column(select_widget, grid_layout)
app
1 Like
Hello,
you should add the option responsive=True
to your plots
import panel as pn
import holoviews as hv
import numpy as np
pn.extension()
select_widget = pn.widgets.Checkbox(name='select')
@pn.depends(select=select_widget.param.value)
def get_points(select):
if select:
return hv.Points(np.random.rand(10,10)).opts(title='A')
else:
return hv.Points(np.random.rand(10,10)).opts(title='B')
plot = hv.DynamicMap(get_points)
grid_layout = pn.GridSpec(sizing_mode='scale_both')
grid_layout[0,0] = plot.opts(responsive=True)
app = pn.Column(select_widget, grid_layout)
app
rindis
December 15, 2019, 9:09am
3
I thought that GridSpec
was supposed to add responsive=True
to all elements contained within it?