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

Windows10环境下Jupyter Book中Boxplot显示与定义不符如何解决

Jupyter Book箱线图样式异常修复方案

原因说明

该问题通常是Jupyter Book默认注入的绘图样式覆盖了自定义配置、Windows环境matplotlib后端差异、以及隐式依赖默认绘图参数三者共同导致的,可按以下步骤逐一排查修复:

  • 步骤1:禁用Jupyter Book自动样式覆盖
    在项目根目录的_config.yml中添加以下配置,关闭默认的matplotlib样式注入:

    sphinx:
      extra_extensions:
        - sphinx.ext.mathjax
      config:
        matplotlib_plot_style: null
        html_scaled_image_link: False
    
  • 步骤2:绘图代码开头显式声明所有配置
    所有样式设置必须放在绘图逻辑最前面,同时显式指定后端、输出格式,避免环境差异影响:

    # 最开头就指定后端,必须放在导入pyplot之前
    import matplotlib
    matplotlib.use('Agg')
    import matplotlib.pyplot as plt
    import matplotlib_inline
    
    # 固定输出dpi和格式,避免缩放模糊
    matplotlib_inline.backend_inline.set_matplotlib_formats('png', dpi=150)
    plt.rcParams.update({
        'font.sans-serif': ['Arial', 'DejaVu Sans'],
        'axes.edgecolor': 'black',
        'axes.linewidth': 1,
        'patch.force_edgecolor': True
    })
    
  • 步骤3:箱线图参数显式传递,禁用默认值
    绘制箱线图时必须添加patch_artist=True参数,同时将所有样式属性显式传递,不要依赖环境默认值,示例代码如下:

    # 自定义所有控件样式
    box_props = {'facecolor': '#4c72b0', 'edgecolor': 'black', 'linewidth': 1.2}
    median_props = {'color': '#ff7f0e', 'linewidth': 1.8}
    whisker_props = {'color': 'black', 'linewidth': 1.2}
    capprops = {'color': 'black', 'linewidth': 1.2}
    
    # 绘图时显式传入所有样式参数
    plt.boxplot(
        your_data,
        patch_artist=True,
        boxprops=box_props,
        medianprops=median_props,
        whiskerprops=whisker_props,
        capprops=capprops
    )
    

效果对比

效果对比图

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 18:36:05