bokeh,动态更改绘图宽度

2024-09-19 23:35:43 发布

您现在位置:Python中文网/ 问答频道 /正文

当taptool选择某个内容时,我试图更改绘图宽度。 我使用bokehserve调用它,并导航到localhost网站

当我点击其中一个矩形时,我的控制台会打印出“callback”和“callback2”,但我的绘图不会改变宽度。 我做错什么了?在

counts = [1*10**7,2*10**7,3*10**7]     #dummy data
l_edge = [x for x in range(len(counts))]
r_edge = [x + .85 for x in range(len(counts))]

data = {
    'height': counts,
    'leftEdges': l_edge,
    'rightEdges': r_edge,
}


p = figure()
s = ColumnDataSource(data)
p.add_tools(TapTool())

def callbackfcn(attr,old,new): 
    global p
    print('callback')
    p.width = np.random.choice([100,200,300,1000,10000])
    p.height = np.random.choice([100,200,300,1000,10000])
    print('callback2')

r = p.quad(top='height',bottom=0,
               left = 'leftEdges',right = 'rightEdges',
              source = s)        

r.data_source.on_change('selected',callbackfcn)              

layout = column(p)
curdoc().add_root(layout)

Tags: inadd绘图fordatalen宽度callback