Вам просто нужно передать заголовок обратному вызову.Я обнаружил, что название сюжета - это модель Боке, поэтому применяются все обычные манипуляции.Ваш обратный вызов может выглядеть примерно так:
update_title = CustomJS(args=dict(title=plot.title), code="""
title.text = cb_obj.value
""")
, а полный пример будет
import numpy as np
from bokeh.layouts import row, column
from bokeh.models import CustomJS, TextInput
from bokeh.plotting import figure, output_file, show, ColumnDataSource
x = np.linspace(0, 10, 500)
y = np.sin(x)
source = ColumnDataSource(data=dict(x=x, y=y))
plot = figure(y_range=(-10, 10), plot_width=400, plot_height=400, title='my sine wave')
plot.line('x', 'y', source=source, line_width=3, line_alpha=0.6)
update_title = CustomJS(args=dict(title=plot.title), code="""
title.text = cb_obj.value
""")
text = TextInput(title='Enter title', value='my sine wave', callback=update_title)
layout = row(
plot,
text
)
output_file('title_change.html', title='change title')
show(layout)