当前位置: 首页 > news >正文

matplotlib 保存pdf图时,TrueType font is missing table.

 

=============================

matplotlib 保存pdf 图时,TrueType font is missing table.

 E:\Eprogramfiles\Anaconda3\lib\site-packages\matplotlib\backends\_backend_pdf_ps.py:102: RuntimeWarning: Glyph 8722 missing from current font.
  font.set_text(s, 0.0, flags=ft2font.LOAD_NO_HINTING)
The PDF backend does not currently support the selected font.

 

图片

 解决方案

增加一行代码即可:

 plt.rcParams['pdf.fonttype'] = 42  # 可行
 plt.savefig(r"xxx.pdf", bbox_inches='tight')

 

好像更新ipython和matplotlib最新版本能够解决。

 

 

========================================

在使用Matplotlib保存图形时遇到“TrueType font is missing table”的错误通常是因为字体文件不完整或者缺少某些必需的表。这种问题经常发生在尝试保存图形到某些格式(如PDF或SVG)时,尤其是当字体文件(如TrueType字体)不包含所有必要的字体表时。

解决方案

1. 使用完整的字体文件

确保你使用的字体文件是完整的,特别是当你打算将其用于图形输出时。例如,如果你正在使用Windows操作系统,可以尝试使用系统中预装的字体,如Arial、Times New Roman等。

2. 指定字体路径

在Matplotlib中,你可以指定字体的路径来避免这个问题。这可以通过设置matplotlibrc配置文件或者在使用matplotlib.font_manager动态指定字体来实现。

使用matplotlibrc配置文件:

在Matplotlib的配置文件中(通常是matplotlibrc或者在你的项目目录下的matplotlibrc),你可以添加或修改以下行来指定字体路径:

font.family: sans-serif
font.sans-serif: Arial, DejaVu Sans, Liberation Sans, Bitstream Vera Sans, Computer Modern Sans Serif

确保你的字体文件路径被正确包含在列表中。

动态指定字体路径:‌ 

import matplotlib.pyplot as plt from matplotlib.font_manager
import FontProperties
font_path = 'path/to/your/font.ttf' # 替换为你的字体文件路径
font_prop = FontProperties(fname=font_path)
plt.title('示例标题', fontproperties=font_prop)
plt.show()

3. 安装缺失的字体表

如果你有权限修改字体文件,可以尝试使用字体编辑工具(如FontForge)来添加缺失的表。这通常不是一个推荐的方法,因为它可能会损坏字体文件或者引入其他问题。通常,更好的做法是使用一个完整的字体文件。

4. 使用支持更完整字体的格式

当你保存图形时,选择一个对字体支持更好的格式。例如,PNG或JPEG格式通常不会遇到这种问题,因为它们不依赖于字体的嵌入。如果你必须使用PDF或SVG,确保你的字体文件是完整的,并且正确地设置在Matplotlib中。 

plt.savefig('figure.pdf') # 改为PNG或JPEG以避免字体问题

总结

确保你的字体文件是完整的,并通过Matplotlib正确设置或指定字体路径。如果你频繁遇到这个问题,考虑使用支持较少字体问题的图像格式(如PNG或JPEG)。如果问题仍然存在,尝试在不同的系统或环境中测试你的代码,以排除特定环境的问题

 

http://www.rkmt.cn/news/47533.html

相关文章:

  • 1JDBC简介
  • 出入门禁管理应用:智能高效的出入口管控解决方案
  • 对象转字典列表字典转对象
  • vmware+centos7虚拟机连接不到网络的问题
  • TCP和UDP区别
  • 设计QQ,网络协议如何设计
  • 代码随想录Day8_字符串
  • 软件工程团队作业2
  • Chromium扩展策略绕过漏洞CVE-2025-12436安全分析
  • 让AI替你写用例!Dify+RAG工作流,一键生成覆盖率达90%的测试方案
  • 图库函数集
  • 国产水质检测仪厂家推荐:采购COD检测仪/总氮/总磷/余氯检测仪的注意事项
  • V4L2的pad连接
  • 2025年11月全自动红外测油仪采购推荐:国产全自动红外测油仪品牌推荐,哪家好?
  • aws的iam
  • 副本分片重建
  • PK6500无源探头在5G基站射频模块测试中的应用方案
  • 2025高压加速老化/HAST/PCT/热流仪厂家推荐伟煌试验设备,专业可靠!
  • 画图
  • 2025年11月学习平板推荐!学而思凭 AI功能成家长首选
  • 2025 EVA/EVA发泡胶/板材/卷材/片材厂家推荐深圳市共创辉煌,防火/阻燃/防静电多性能保障
  • 故障发现提速 80%,运维成本降 40%:魔方文娱的可观测升级之路
  • SVM - Machine Learning - SVM Part 2: The Polynomial Kernel
  • 2025营口颈椎病治疗推荐,范开英专业诊疗口碑之选
  • 记录一个自动学习的脚本开发过程 - 教程
  • 【Kubernetes】使用Helm简化k8s部署、管理
  • CompletableFuture Java8 异步编程工具
  • 2025年评价高的单插插入门最新TOP品牌厂家排行
  • 【Python】基于 PyQt6 和 Conda 的 PyInstaller 打包工具 - 教程
  • Java EE初阶--多线程 - 教程