根据屏幕缩放Bokeh

2024-10-04 11:28:26 发布

您现在位置:Python中文网/ 问答频道 /正文

正如您看到的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图形,同时保持同一行的宽度比例?在


Tags: 绘图屏幕plotwidthfillcolorfigurerow1
1条回答
网友
1楼 · 发布于 2024-10-04 11:28:26

当涉及到复杂的布局时,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来实现这一点。在

相关问题 更多 >