2017-07-20 84 views

回答

1

似乎有關於DataTable的響應大小模式的錯誤或未公開的行爲,並且尚未在版本0.12.7中解決。 在我的情況下,我有另一個數據表上的圖,由佈局組成。如果這是你的情況,那麼純Python工作。假設上面的曲線秤上的寬度,就可以得到窗口寬度觀察到的情節是layout_width屬性,如下所示:

def print_width(attr,old,new): 
    print(new) 
    return 
upper_plot.on_change('layout_width',print_width) 

當然你也可以使用相同的回調來設置你的數據表的寬度。

3

首先,你有沒有嘗試過使用sizing_mode屬性的背景虛化你的對象。您可以使用scale_width讓Bokeh使用頁面的整個寬度。


個人我已經使用sizing_mode時沒有設置固定了很多困難。所以這裏有一些我用過的解決方案。

僅使用python,您可以獲得計算機的屏幕寬度。從此,您可以推斷瀏覽器的大小,假設它是全屏。如果你需要的大小物體不需要響應,你只需要在負載一旦適應整個窗口

import ctypes 
screen_width = ctypes.windll.user32.GetSystemMetrics(0) 

該解決方案是好的。

對於真正的窗口大小,您將需要使用javascript。 window.innerWidth是您需要致電的物業。

您可以將此值存儲在任意Bokeh對象tags中,然後您可以在python端讀取它。您也可以直接在自定義JavaScript回調中發送您的Bokeh對象,並使用js直接設置它的寬度。


如果你的目標是響應對象的大小,這是一個比較棘手的野獸來解決,我不能說我已經嘗試這樣做。根據我對Bokeh的瞭解,我會說你最好的選擇是創建一個自定義的Bokeh對象,它使用coffeescript獲得窗口大小。然後,您可以將一個on_change偵聽器添加到該對象以調整任意對象的大小。