Jslink title

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