2017-07-05 97 views
1

正如你所見,here,我在同一行有兩個圖。我需要根據屏幕大小縮放整行,但要保持繪圖長度比。根據屏幕縮放散景

我嘗試了參數:sizing_mode = 'scale width',但它不起作用,因爲它會改變圖的高度。

p1 = figure(plot_width=NewRanges_Row1[0], plot_height=height, tools=[hover1, TOOLS], title="CHROMOSOME_1", 
      toolbar_location="above", responsive = True) 
p1.circle('x1', 'y1', fill_color=chromosome1_colors, line_color=chromosome1_colors, 
      fill_alpha=chromosome1_transparency, size=7, source=source1) 
p2 = figure(plot_width=NewRanges_Row1[1], plot_height=height, tools=[hover22, TOOLS], title="CHROMOSOME_22") 
p2.circle('x22', 'y22', fill_color=chromosome22_colors, line_color=chromosome22_colors, 
      fill_alpha=chromosome22_transparency, size=7, source=source22) 

P1是排第一的情節,和P2是排第二的情節。

有沒有辦法根據屏幕尺寸自動縮放散景圖,同時保持同一行的寬度比例?

回答

0

當涉及到複雜的佈局時,Bokeh的響應式繪圖功能仍然很差。我找到的解決方案是使用Python的內置庫來確定屏幕分辨率,然後爲每個對象設置高度和寬度值。

import ctypes 
screen_width = ctypes.windll.user32.GetSystemMetrics(0) 
max_width = floor(96 * screen_width/100) # buffer to adjust 
p1_width = 0.8*max_width 
p2_width = 0.2*max_width 

然而,這意味着Web應用程序是不是真正具有響應性,因爲它不會爲應用程序啓動時屏幕分辨率確定只有當用戶的瀏覽器頁面調整。如果你需要更快速的應用程序,你需要通過調整應用程序的css和js來進行調查。