2017-07-05 23 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来进行调查。