2016-01-23 179 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',其他'???'

相關問題