Python 如何使用bokeh从回调更新轴标签?
有关于如何从回调更新轴标签的线索吗? 同时更改工具提示。 另外,如果有一种更简单/更好的方法来编码绘图之间的交互,请告诉我 这是一个最小的例子Python 如何使用bokeh从回调更新轴标签?,python,callback,bokeh,Python,Callback,Bokeh,有关于如何从回调更新轴标签的线索吗? 同时更改工具提示。 另外,如果有一种更简单/更好的方法来编码绘图之间的交互,请告诉我 这是一个最小的例子 values = list('ABCDFG') df = pd.DataFrame(np.random.randint(0,100,size=(30, 6)), columns=values) varName1 = 'A' varName2 = 'B' df['x'] = df[varName1] df['y'] = df[varName2]
values = list('ABCDFG')
df = pd.DataFrame(np.random.randint(0,100,size=(30, 6)), columns=values)
varName1 = 'A'
varName2 = 'B'
df['x'] = df[varName1]
df['y'] = df[varName2]
source = ColumnDataSource(df)
p0 = figure(tools='pan, wheel_zoom, box_select, lasso_select', plot_width=400, plot_height=400,
active_scroll="wheel_zoom",
x_axis_label=varName1, y_axis_label=varName2,
tooltips=[ (varName1, "@" + varName1),
(varName2, "@" + varName2)
],
title= varName1 + " vs " + varName2)
circles = p0.circle('x', 'y', source=source,
size=15, line_color="navy", fill_color="navy", fill_alpha=0.3)
select1 = Select(title="Variable 1:", value=varName1, width=100, options=values)
select2 = Select(title="Variable 2:", value=varName2, width=100, options=values)
changeVariables = CustomJS(args=dict(plot=p0, source=source, select1=select1, select2=select2, ax1=p0.xaxis, ax2=p0.yaxis), code="""
var varName1 = select1.value;
var varName2 = select2.value;
plot.title.text = varName1 + " vs " + varName2;
ax1[0].axis_label = varName1;
ax2[0].axis_label = varName2;
source.data['x'] = source.data[varName1];
source.data['y'] = source.data[varName2];
source.change.emit();
""")
select1.js_on_change("value", changeVariables)
select2.js_on_change("value", changeVariables)
show(row(p0, select1, select2))
将这一行添加到JS回调中(适用于BokehV1.4.0-v2.1.1):
“4”是工具栏中鼠标悬停工具的索引我已经简化了代码,但是我仍然没有弄清楚如何从回调中更改工具提示以显示变量名。键入:[[varName1,@“+varName1],[varName2,@”+varName2]]但无论如何,工具提示仍会显示一个,BSee更新信息:我测试了Bokeh v2.1.1的代码,但与上一个2.2.3版本不兼容。您可以升级吗?降级是相当危险的。由于存在错误,它在2.2.3中不起作用。您需要降级或等待新版本
plot.toolbar.tools[4].tooltips = [[varName1, "@" + varName1], [varName2, "@" + varName2]]