【发布时间】:2018-03-19 15:27:21
【问题描述】:
我已经创建了一个散景图,现在尝试向其中添加一些小部件。目前我想用 RangeSlider 改变 x 轴,但我认为回调有一些问题。附上你找到的代码:
import pandas as pd
import numpy as np
import bokeh.plotting as bp
from bokeh.models import CustomJS
from bokeh.models.widgets import RangeSlider
from bokeh.layouts import row, widgetbox
from bokeh.plotting import figure, show, output_file
df = pd.DataFrame(np.random.randint(0,30,size=(100, 3)), columns=list('ABC'))
df.index.name ='Numbers'
dt = bp.ColumnDataSource(df)
output_file("Plot.html")
p = figure(title="Example",
x_axis_label = "Number", y_axis_label = "Temperature in C",
x_range=(0,100))
p.line(source=dt, x='Numbers', y='A', color='blue', legend='Line A')
p.line(source=dt, x='Numbers', y='B', color='red', legend='Line B')
p.line(source=dt, x='Numbers', y='C', color='green', legend='Line C')
p.legend.click_policy="hide"
callback = CustomJS(args=dict(p=p), code="""
var a = cb_obj.value;
p.x_range = a;
p.change.emit();
""")
range_slider = RangeSlider(start=0, end=100,value=(2,75), step=1, title="Test")
range_slider.js_on_change('value', callback)
layout = row(p,widgetbox(range_slider))
show(layout)
提前致谢!
【问题讨论】:
标签: python bokeh rangeslider