正如您所见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 是行中的第二个绘图。
有没有办法根据屏幕大小自动缩放Bokeh数字,同时保持同一行中宽度的比例?
答案 0 :(得分: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来实现这一目标。