python 绘图英文字体_Matplotlib 中英文及公式字体设置

本文针对Python的matplotlib库在绘制图表时如何设置中英文及公式的字体问题,提供了两种解决方案。第一种利用内置的TeX引擎,通过设置`mathtext.fontset`为'stix'来实现中英文不同字体的显示。第二种方法是使用外部的xelatex,通过pgf后端和xeCJK宏包来分别设置中英文和公式字体。
摘要由CSDN通过智能技术生成

网上铺天盖地matplotlib字体教程,但是为啥我还要再写一个呢?

因为广大的科研人员的需求一般都是要求如下的格式:中文:宋体

英文:Times New Roman

公式:与英文配合

然而现有的问题如 用Python的matplotlib画图,怎么保证xlabel中中文用宋体,英文用新罗马? 也没有令人满意的方案。在探索了一段时间后,得到了两种解决方案,可以在同一行内采用不同的中英文以及公式字体。

现有的方法及问题如果直接设置中文字体,如在matplotlibrc里面修改font.serif: SimSun,则英文字体会被覆盖,因为中文字体中往往都自带英文字体,但大多比较丑。

如果设置usetex=Ture,即调用外部tex程序来渲染,则会因为调用的是pdflatex而显示不了中文。

所以针对这两种方法的问题,分别有对应的解决方案:

使用内置tex

Matplotlib(下称mpl)自带tex引擎,可以解析并显示Latex字符串。虽然中文会覆盖英文字体,但是mpl的数学字体和一般的text字体是独立的,所以我们可以把文字放到Latex字符串里面,并使用\mathrm{text}来使其显示为正体。

mpl自带有几种数学字体,最常用的有cm系列和stix系列,前者是Latex默认的数学字体,而stix的正体和Times New Roman差别很小,一般用来和Times New Roman搭配。所以这里我们采用stix,即可达到相同的视觉效果。

代码如下:

import matplo

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值