Is there a way to update the title through javascript? I know it’s possible through plot.apply.opts(title=widget.param.value)
, but I don’t want a server.
import holoviews as hv
import panel as pn
hv.extension("bokeh")
pn.extension()
x = [0, 1, 2]
y = [3, 4, 5]
widget = pn.widgets.TextInput(value="ABC")
plot = hv.Curve((x, y))
jscode = """
plot.title = cb_obj.value;
cb_obj.change.emit();
"""
link = widget.jslink(plot, code={'value': jscode})
pn.Column(widget, plot)
Oh, just needed .text:
import holoviews as hv
import panel as pn
hv.extension("bokeh")
pn.extension()
x = [0, 1, 2]
y = [3, 4, 5]
widget = pn.widgets.TextInput(value="ABC")
plot = hv.Curve((x, y))
jscode = """
plot.title.text = cb_obj.value;
cb_obj.change.emit();
"""
link = widget.jslink(plot, code={'value': jscode})
pn.Column(widget, plot)
Can be simplified to
import holoviews as hv
import panel as pn
hv.extension("bokeh")
pn.extension()
x = [0, 1, 2]
y = [3, 4, 5]
title = "Title"
widget = pn.widgets.TextInput(value=title)
plot = hv.Curve((x, y)).opts(title=title)
link = widget.jslink(plot, value="plot.title.text")
pn.Column(widget, plot)
1 Like