使用下拉菜单和回调更新 Bokeh 上的交互式图形
Update an interactive graph on Bokeh using a dropdown and callback
我是 Python 的新手,但一直在接受 DataCamp 培训。我希望使用下拉菜单更新图表。
下拉菜单将 select 数据框中的一列,并在 x 轴上绘制该数据。
这是我目前拥有的:
df1 = pd.read_csv('C:/PStuff/dataA.txt')
source = ColumnDataSource(df1)
plot = figure()
plot.circle(x = 'col1', y = 'col5', source=source)
menu = Select(options=['col1', 'col2', 'col3'], value='col1', title='Distribution')
def callback(attr, old, new):
if menu.value == 'col2': x ='col2'
elif menu.value == 'col3': x ='col3'
else: x ='col1'
menu.on_change('value', callback)
layout = column(menu, plot)
curdoc().add_root(layout)
我目前在 运行 它或 运行 Bokeh 服务中没有收到任何错误,目前什么也没有显示!任何帮助将不胜感激。
来自 plot.circle() 参数的 x
仅存在于该调用中。所以你的回调只是给一个什么都不做的x
变量赋值。
您可以更新源本身。
# set the source to specific columns from df1 initially
source = ColumnDataSoruce(data={'x':df1['col1'],'y':df1['col5']})
plot.circle(x = 'x', y = 'y', source=source)
menu = Select(options=['col1', 'col2', 'col3'], value='col1', title='Distribution')
def callback(attr, old, new):
source.data.update({'x':df1[new]})
我是 Python 的新手,但一直在接受 DataCamp 培训。我希望使用下拉菜单更新图表。
下拉菜单将 select 数据框中的一列,并在 x 轴上绘制该数据。
这是我目前拥有的:
df1 = pd.read_csv('C:/PStuff/dataA.txt')
source = ColumnDataSource(df1)
plot = figure()
plot.circle(x = 'col1', y = 'col5', source=source)
menu = Select(options=['col1', 'col2', 'col3'], value='col1', title='Distribution')
def callback(attr, old, new):
if menu.value == 'col2': x ='col2'
elif menu.value == 'col3': x ='col3'
else: x ='col1'
menu.on_change('value', callback)
layout = column(menu, plot)
curdoc().add_root(layout)
我目前在 运行 它或 运行 Bokeh 服务中没有收到任何错误,目前什么也没有显示!任何帮助将不胜感激。
来自 plot.circle() 参数的 x
仅存在于该调用中。所以你的回调只是给一个什么都不做的x
变量赋值。
您可以更新源本身。
# set the source to specific columns from df1 initially
source = ColumnDataSoruce(data={'x':df1['col1'],'y':df1['col5']})
plot.circle(x = 'x', y = 'y', source=source)
menu = Select(options=['col1', 'col2', 'col3'], value='col1', title='Distribution')
def callback(attr, old, new):
source.data.update({'x':df1[new]})