Matplotlib中显示汉字,Times New Roman字体,公式的相关设置(1)

关于matplotlib中汉字显示的相关方法可以在很多博客文章中查到,此处不再赘述。
写这篇文章的原因是需要在一张图的xlabel处既需要显示汉字,还需要显示Times New Roman的英文,还有公式。
查找了许多文章,找到了一种方法,特在此总结一下。

首先导入包

import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties
import numpy as np

字体设置及解释

plt.rcParams['font.sans-serif'] = ['SimSun'] # 全局字体,显示中文,宋体,可替换为其他字体
plt.rcParams['font.size'] = 14 # 全局字号
plt.rcParams['mathtext.fontset'] = 'stix' # 用tex公式的形式输入英文和公式,以显示Times New Roman字体
fonten = FontProperties(fname='C:\Windows\Fonts\Times.ttf', size=12) # 在其他需要个性化设置字体类型时,使用FontProperties进行设置,此处也可以使用dict,然后在需要时赋值给fontdict

数据

x = np.linspace(1, 10, 10)
y = np.array([85, 108, 148, 227, 329, 517, 572, 786, 903, 972])

绘图

plt.bar(x, y, width=0.2)
plt.xticks(np.linspace(1, 10, 10), fontproperties=fonten)
plt.xlabel(r'x轴    $\mathrm{x \ label}\sum_{i=0}^\infty x_i$')
plt.title(r'title   $title$', fontproperties=fonten)
plt.show()

结果

结果图片

结果解释

  • 全局字体设置为宋体,所以x label中的x轴显示为宋体
  • 使用\mathrm{{x \ label}}后,x label中的x label显示为TImes New Roman字体
  • 对比title中的$title$,此处显示为斜体,说明tex公式默认斜体,xlabel中的公式也是斜体
  • xtick中的字体通过fontproperties设置为TImes New Roman字体

存在问题

  • 此处使用的tex是matplotlib内置的tex,但功能较弱,如果需要在公式中显示中文,需要使用外部tex,这部分还未研究,日后补充。需要的可参考文后链接以及网上搜索。

参考链接

参考1
参考2

欢迎指正!

  • 6
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值