2016-01-23 166 views
1

Bokeh可以在图表上显示悬停工具提示,从值列表中进行选择。但是如果我需要对所有值做相同的变量呢? 下面的示例(来自文档)允许从列表中显示值,但是如果您执行desc=foo,,而不是desc=['A', 'b']提示转换为“???”Bokeh图表:悬停工具提示

source = ColumnDataSource(
     data=dict(
      x=[1, 2, 3, 4, 5], 
      y=[2, 5, 8, 2, 7], 
      desc=['A', 'b', 'C', 'd', 'E'], 
     ) 
    ) 

hover = HoverTool(
     tooltips=[ 
      ("index", "$index"), 
      ("(x,y)", "($x, $y)"), 
      ("desc", "@desc"), 
     ] 
    ) 

回答

2

ColumnDataSource数据字典预计所有与每个键关联的列表长度相同。让我们在ColumnDataSource块之前声明一些变量:

x_ls = [1, 2, 3, 4, 5] 
foo_ls = ['foo']*len(x) 
print(foo_ls) #['foo', 'foo', 'foo', 'foo', 'foo'] 

source = ColumnDataSource(
     data=dict(
      x=x_ls, 
      y=[2, 5, 8, 2, 7], 
      desc=foo_ls 
     ) 
    ) 

这将显示“富”的所有5个点,按要求。其他一些负面情况下,我想说明这个问题:

desc=foo 

这将抛出一个错误,因为HoverTool不知道foo是什么。

desc='foo' 

其中一个点会显示'f',另外两个显示'o',最后两个会显示'???'

desc=['foo'] 

其中一点将显示'foo',其他'???'

相关问题