我在Bokeh尝试自己。我发现它非常有趣,因为它似乎是D3js的一个很好的替代品。在第一次尝试中,我想创建一个带有小部件的小交互式圆形图表(用于更改标题和可能的字形颜色/大小)。这是我的工作:
# interactive widget bokeh figure
from bokeh.io import curdoc
from bokeh.layouts import row, widgetbox
from bokeh.models import ColumnDataSource
from bokeh.models.widgets import Slider, TextInput
from bokeh.plotting import figure
import numpy as np
# data
x = [-4, 3, 2, 4, 10, 11, -2, 6]
y = [-3, 2, 2, 9, 11, 12, -5, 6]
# Set up plotting
x_top = np.max(x)+np.var(x)
x_bottom = np.min(x)-np.var(x)
y_top = np.max(y)+np.var(y)
y_bottom = np.min(y)-np.var(y)
p = figure(plot_height=400, plot_width=400, title="a little interactive chart",
tools="crosshair,pan,reset,save,wheel_zoom",
x_range=[x_bottom, x_top], y_range=[y_bottom, y_top])
p.circle(x, y, fill_color="red", line_color="red", size=6)
# Set up widgets
text = TextInput(title="title", value='a little interavtive chart')
size = Slider(title="circle size", value = 6, start=0, end=10, step=0.1)
# Set up callbacks
def update_title(attrname, old, new):
p.title.text = text.value
text.on_change('value', update_title)
# # Set up layouts and add to document
inputs = widgetbox(text, size)
curdoc().add_root(row(inputs, p, width=800))
curdoc().title = "Sliders"
show(p)
不知怎的,我得不到视觉效果 - 没有错误,但没有结果。我的意思是我错误地使用curdoc()
。关于我为什么得到一架空机的想法?
答案 0 :(得分:1)
如果您正在使用python回调和curdoc
创建散景应用程序,那么您不必直接使用python解释器运行它们。您必须使用Bokeh服务器运行它们:
bokeh serve --show myapp.py