?? 本文讨论基于 macOS 系统,部分示例代码可能需要根据操作系统微调。
中西混排示例
样图
代码
import matplotlib.pyplot as plt
config = {
"font.family": "serif",
"font.serif": ["SimSun"],
"font.size": 20,
"axes.unicode_minus": False,
"mathtext.fontset": "stix",
}
plt.rcParams.update(config)
font_en = {
"fontname": "Times New Roman",
"fontsize": 15,
}
fig, ax = plt.subplots(figsize=(7, 7))
ax.plot([i / 10.0 for i in range(10)], [i / 10.0 for i in range(10)])
ax.set_title("能量随时间变化\n$\mathrm{Change\ in\ energy\ over\ time}$")
ax.set_xlabel("时间($\mathrm{s}$)")
ax.set_ylabel("能量($\mathrm{J}$)")
plt.xticks(**font_en)
plt.yticks(**font_en)
plt.legend(["测试曲线"])
plt.show()
扩展
查看可调用字体
上述代码 "font.serif": ["SimSun"] 中的字体名可通过以下代码块得到:
from matplotlib import font_manager
for font in font_manager.fontManager.ttflist:
print(font.name)
💡 在终端中使用 python find_fonts.py | fzf 可交互搜索可用字体??
参考链接
- 解决python中matplotlib中文乱码 for Mac - 简书
- Matplotlib 中英文及公式字体设置 - 知乎
- python - How do I change the axis tick font in a matplotlib plot when rendering using Latex? - Stack Overflow
|