news 2026/4/18 17:05:33

【科研绘图】Python 画图救星:如何在 Matplotlib 中完美使用 Times New Roman?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【科研绘图】Python 画图救星:如何在 Matplotlib 中完美使用 Times New Roman?

前言:被审稿人 Diss 的痛

做科研的同学肯定都经历过这样的时刻:辛辛苦苦跑完实验,用 Python 画出了精美的折线图,结果投稿时被审稿人一句冷冰冰的意见打回:

“Figures should use standard fonts (e.g., Times New Roman). The current font looks like Arial/Computer Modern.”

你可能会疑惑:我明明在 PPT 里看是 Times New Roman 啊?为什么 Matplotlib 默认画出来的公式(尤其是 这种变量)看起来就是“不对味”?

本文将带你通过三个层级(从青铜到王者),彻底解决 Matplotlib 中的 Times New Roman 字体问题,并顺带解密那个让无数人困惑的字母“Q”


青铜方案:STIX 字体(最快上手)

Matplotlib 自带了一套名为STIX(Scientific and Technical Information Exchange) 的字体,它是专门为了模仿 Times New Roman 而设计的。

适用场景:一般会议论文,或者对字体细节要求不严苛的场合。

代码实现:

importmatplotlib.pyplotasplt# 将数学公式字体设置为 stixplt.rcParams['mathtext.fontset']='stix'# 将普通文本字体设置为衬线字体plt.rcParams['font.family']='serif'plt.rcParams['font.serif']=['Times New Roman']plt.plot([1,2,3])plt.title(r"Result: $Q_i = \sin(x)$")plt.show()

缺点:STIX 毕竟只是“模仿者”。在某些字母的细节上(例如数字 1 的起笔、v 的弯曲度),它和真正的 Times New Roman 还是有肉眼可见的区别。


黄金方案:强制调用系统字体(无需安装 LaTeX)

如果你有“强迫症”,或者期刊要求必须使用操作系统自带的 Times New Roman,可以使用Custom(自定义)模式。这招能骗过 99% 的审稿人。

适用场景:绝大多数 SCI 期刊,不想折腾 LaTeX 环境的 Windows/Mac 用户。

代码实现:

config={"font.family":'serif',"font.serif":['Times New Roman'],"mathtext.fontset":'custom',# 关键:启用自定义模式"mathtext.rm":'Times New Roman',# 公式中的正体"mathtext.it":'Times New Roman:italic',# 公式中的斜体"mathtext.bf":'Times New Roman:bold',# 公式中的粗体}plt.rcParams.update(config)

原理:强行告诉 Matplotlib:“别用你自带的渲染器了,去系统里找名叫Times New Roman的字体文件来用。”


王者方案:调用外部 LaTeX 引擎(终极完美)

这是科研绘图的“核武器”。直接调用你电脑上的 LaTeX 编译器来生成文字,效果和你的论文正文完全一致。

适用场景:Nature/Science 级别顶刊,或者对公式排版(根号、积分号、微积分算子)有极致要求的场景。

前提条件:电脑必须安装TeX Live(推荐) 或 MiKTeX。

代码实现:

plt.rcParams.update({"text.usetex":True,# 开启 LaTeX 渲染"font.family":"serif","font.serif":["Times"],# 加载 mathptmx 宏包 (LaTeX 里的标准 Times 方案)"text.latex.preamble":r"\usepackage{mathptmx}"})

注:如果你觉得mathptmx太老旧,可以换成更现代的\usepackage{newtxtext,newtxmath}


避坑指南:为什么我的 “Q” 看起来不一样?

这是很多人容易踩的坑。大家都是 Times New Roman,为什么有的“Q”尾巴是直的,有的是弯的?

这里要区分正体 (Roman)斜体 (Italic)

  1. 正体 Q:尾巴是一条短直线,穿过圆圈右下角。风格严肃。
  2. 斜体 Q:尾巴是一条优雅的长曲线(Swash),像书法的笔触。

真相是:在学术公式中,变量(如 , )默认是斜体。如果你画出来的图里,Q 的尾巴是直的,说明你配置错了(可能用成了正体,或者没开启数学模式)。

正确效果对比:

  • plt.text(x, y, "Q")-> 正体 Q,尾巴直,不符合变量规范。
  • plt.text(x, y, "$Q$")-> 数学斜体 Q,尾巴弯,这才是论文要的!

番外:Draw.io (diagrams.net) 怎么改?

不仅是 Python,我们在画流程图时也常遇到这个问题。Draw.io 的公式默认用的是 Computer Modern(LaTeX 默认字体)。

解决方法:
在 Draw.io 里写公式时,对于非变量的文本(如单位),用\text{}包裹,并配合右侧面板的字体设置:

$$ v_{max} = 10 \text{ m/s} $$

这样,v_{max}会保持数学斜体,而m/s会变成你设置的 Times New Roman 正体,完美融合。


总结

  • 赶时间/要求不高:用stix
  • 不装 LaTeX 但要真 Times:用mathtext.fontset = 'custom'
  • 追求出版级完美:装好 TeX Live,开启text.usetex = True

希望这篇指南能帮你的论文图片一次过审!🚀

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 5:42:46

教育行业新变革:Linly-Talker助力在线课程智能化升级

教育行业新变革:Linly-Talker助力在线课程智能化升级 在远程教学日益普及的今天,许多教师仍被繁琐的视频录制、剪辑和重复答疑所困扰。一节20分钟的课程,可能需要数小时准备脚本、调试设备、反复重录——而学生的问题却依然得不到即时回应。这…

作者头像 李华
网站建设 2026/4/18 5:40:47

5、Windows 10基础操作与帮助指南

Windows 10基础操作与帮助指南 1. 获取帮助 在使用Windows 10时,我们可以通过电脑上的“入门”应用程序和微软网站上的资源来获取帮助。“入门”应用程序主要聚焦于Windows 10的新功能,包括与Cortana交互、使用应用程序、使用文件资源管理器以及个性化电脑设置等。 - 使用…

作者头像 李华
网站建设 2026/4/18 7:41:38

12、Windows 电脑文件整理与个性化设置全攻略

Windows 电脑文件整理与个性化设置全攻略 在日常使用 Windows 电脑的过程中,文件整理和系统个性化设置是非常重要的操作。合理地组织文件可以提高工作效率,而个性化设置则能让电脑更贴合个人的使用习惯和审美需求。下面将详细介绍几个实际案例中的文件整理和系统个性化设置的…

作者头像 李华
网站建设 2026/4/17 18:39:13

Linly-Talker在火车站候车室的列车信息播报应用

Linly-Talker在火车站候车室的列车信息播报应用 在春运高峰期的火车站候车大厅里,广播一遍遍重复着列车信息,声音机械而遥远。旅客们行色匆匆,很多人根本没听清关键内容,只能反复询问工作人员——排队长、响应慢、情绪焦躁。这种场…

作者头像 李华
网站建设 2026/4/18 7:35:15

开源大模型新突破:Linly-Talker实现高精度口型同步动画

开源大模型新突破:Linly-Talker实现高精度口型同步动画 在虚拟主播24小时不间断带货、AI教师深夜答疑、数字客服秒回千人咨询的今天,一个更轻量、更智能、真正“能说会道”的数字人系统正悄然改变内容生产的底层逻辑。不需要动辄百万的建模预算&#xff…

作者头像 李华
网站建设 2026/4/17 15:52:45

25、从命令行管理组账户的全面指南

从命令行管理组账户的全面指南 1. 组账户概述 组账户有助于管理多个用户的权限。在Windows Server 2003中,存在三种类型的组: - 安全组 :拥有与之关联的安全描述符,用于帮助管理访问权限。可使用目录服务命令创建和管理安全组。 - 分发组 :用作电子邮件分发列表,…

作者头像 李华