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
相关产品推荐
相关产品推荐

