You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修复Flask嵌入Bokeh Server后图表尺寸与独立版不一致问题

解决Flask嵌入Bokeh Server图表在Chrome中尺寸偏小的问题

Chrome浏览器下,嵌入Flask的Bokeh图表会出现尺寸比独立Bokeh页面小的情况,Firefox则表现正常,这是因为Chrome对嵌入组件的布局计算逻辑不同,通过以下修改可统一尺寸:

具体修改方案(基于官方flask_embed.py示例)

1. 给嵌入容器添加明确CSS尺寸

修改示例中Flask渲染的HTML模板,为图表容器设置和独立页面一致的固定尺寸(或响应式尺寸):

<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>Flask Embed</title>
    {{ script|safe }}
    <style>
        /* 设置容器尺寸,和独立Bokeh页面匹配 */
        .bokeh-embed-container {
            width: 800px;
            height: 600px;
            /* 若需响应式可替换为:
            width: 100%;
            height: 80vh;
            */
        }
    </style>
</head>
<body>
    <div class="bokeh-embed-container">
        {{ div|safe }}
    </div>
</body>
</html>

2. 固定Bokeh图表尺寸或开启响应式

在创建图表的modify_doc函数中,要么明确设置图表的宽高,要么开启响应式布局以适配容器:

def modify_doc(doc):
    # 方式1:固定尺寸,和容器尺寸匹配
    p = figure(plot_width=800, plot_height=600, title="Flask Embedded Chart")
    
    # 方式2:响应式布局,自动适配容器
    # p = figure(sizing_mode="stretch_both", title="Flask Embedded Chart")
    
    p.circle([1,2,3,4,5], [6,7,2,4,5], size=20, color="navy", alpha=0.5)
    doc.add_root(p)

3. 验证效果

重启Flask和Bokeh服务后,Chrome中打开Flask页面,嵌入图表的尺寸会和独立Bokeh页面完全一致;若用响应式设置,调整浏览器窗口时图表也会自动适配。

内容的提问来源于stack exchange,提问作者dshin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 07:58:25