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

Python matplotlib导出eps文件打开后无显示内容问题求助

matplotlib导出带文本EPS文件无法加载的解决方案

根因定位

测试确认无文本的EPS可正常打开,问题根源为matplotlib导出EPS时的字体嵌入逻辑异常,叠加代码中存在转义字符错误,导致Evince渲染文本元素时卡住。

修复步骤

  • 修正代码转义错误:给出的代码中,垂直文本的va参数使用了HTML转义的"center",替换为标准Python字符串即可:
    # 修改前
    plt.text(37.5,1.2,'txt block for vertical line',ha='center',va="center",rotation='vertical',backgroundcolor='white')
    # 修改后
    plt.text(37.5,1.2,'txt block for vertical line',ha='center',va='center',rotation='vertical',backgroundcolor='white')
    
  • 配置EPS兼容字体:在导入pyplot前添加matplotlib全局配置,强制导出时嵌入兼容性更好的Type 42字体,规避Evince对默认Type 3字体的渲染缺陷:
    import matplotlib
    matplotlib.rcParams['ps.fonttype'] = 42
    # 若不需要LaTeX渲染文本,可关闭usetex减少依赖
    # matplotlib.rcParams['text.usetex'] = False
    import matplotlib.pyplot as plt
    
  • 调整导出参数:保存文件时添加参数避免画布裁切异常,修改保存代码为:
    plt.savefig('directory/plot.eps', format='eps', dpi=300, bbox_inches='tight')
    
  • 备选兼容方案:若上述调整仍无效,可先导出为PDF格式,再通过poppler工具集的pdftops命令转换为EPS,转换后的文件对Evince兼容性极高:
    pdftops -eps your_exported_plot.pdf converted_plot.eps

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 09:15:03