2017-04-04 49 views
0

我剛開始與背景虛化,並期待想知道是否有實現以下方式:蟒蛇背景虛化 - 創建自定義的平移按鈕

我有一個金融dataseries最後1年: 我想要創建特殊的工具,使我能夠: - 一個特殊的縮放,在第一個月的一次點擊放大 - 一個特殊的縮放/平移,一次點擊移動正好1個月前,並調整圖表的高度爲可見數據

這是可以實現在散景? 我認爲這將意味着調整原始縮放/平移定義並使用它們創建新工具。

回答

1

這是一個使用taptool的例子,是否適合你?每次點擊都會查看繪圖區域的10個單位間隔。要調整數據圖,您可以從源數據中找到最大和最小y值,並更改y範圍結束和開始。

from bokeh.models import ColumnDataSource, BoxSelectTool,TapTool, HoverTool 
from bokeh.plotting import figure 
from bokeh.io import curdoc 

source2 = ColumnDataSource(data=dict(x=[0,100],y=[0,100])) 

taptool = TapTool() 

p = figure(plot_width=400, 
      plot_height=400, 
      tools=[taptool], 
      title="Select Below") 

p.circle(x='x',y='y',source=source2) 

""" initial x-range is 0, 100""" 
p.x_range.start = 0 
p.x_range.end = 100 

def tool_events_callback(attr, old, new): 
    if(p.x_range.end == 100): 
     p.x_range.end = p.x_range.start + 10 
     p.x_range.start = p.x_range.end - 10 
    else: 
     p.x_range.start = p.x_range.start + 10 
     p.x_range.end = p.x_range.start + 10 

p.tool_events.on_change('geometries', tool_events_callback) 
p.add_tools(BoxSelectTool(), HoverTool()) 
curdoc().add_root(p) 
+0

嗨,謝謝你的回答!但我不認爲它的工作。目前,函數'tool_events_callback'由3個參數定義,但從末尾調用3行時沒有傳入。點擊/點按上沒有任何反應。另外,根據你的代碼,0點有1點,100,100點有1點是你想要的?圖表只顯示左下角和右上角的2個點。 –

+0

您需要使用散景服務運行它 - 顯示myapp.py。這是它會迴應的唯一方式。並且不用擔心tool_events_callback。我輸入的數據點在很大程度上是不相關的,它只是一個例子。 – Anthonydouc

+0

我幾天前纔開始使用Bokeh,所以請原諒我簡單的問題,但我怎麼才能用jupyter筆記本運行「散景服務」? (這就是我正在使用) –