admin管理员组

文章数量:1594976

matplotlib显示任意中文字体(不限SimHei)

  • 1.背景(废话)
  • 2.实验环境
  • 3.步骤
    • 3.1 获取字体文件
    • 3.2 修改画图代码
  • 4. 总结

1.背景(废话)

网上搜索”matplotlib显示中文字体“,估计会出现很多解决方案,作为小白而且想尽快解决问题的我,发现很多教程其实不太满足我的需求(我只想快速解决这个事情,但是似乎缺乏傻瓜式的“一复制一粘贴就ok”的解决方案模式),因此,这个教程整合了一些网上的信息,希望可以对即将被这个问题苦恼的小伙伴有所帮助。

2.实验环境

  • ubuntu16.04
  • python3.7
  • anaconda3
  • (2020.4.15 update:最新在window下验证也可行)

3.步骤

3.1 获取字体文件

如果你有windows系统(没有的话,建议你去找一台, 我用的是win10),C:\Windows\Fonts下有很多字体文件,可以在搜索框里搜索(如“宋体”),选择ttf/TTF后缀的文件就是所需的字体文件(非ttf后缀的字体文件我还没试验过)

如果没有window系统的话,可以通过字体下载网站下载:
https://www.fontpalace/font-details/SimHei/
https://fontzone/font-download/simhei

3.2 修改画图代码

把上一步骤的字体文件拷贝到电脑的任意位置,然后参照下面方式,即可修改字体

import matplotlib.pyplot as plt
from matplotlib.font_manager import *
myfont = FontProperties(fname='TTF文件路径.ttf')
plt.text(0.5, 0.5, '大家好,我是宋体', fontproperties=myfont)
plt.show()

4. 总结

有时候,字体文件用过来会出现这样的bug

RuntimeWarning: Glyph 21397 missing from current font.

就有人开始喷了,“啥玩意,你这也解决不了,浪费老子实践*********(此处省略一万字的自由飞翔)*********”

这坑我踩过,我的解决方式是

换一个其他的字体文件试试,如宋体的simsunb.ttf不行, 我就换成STSUNG.TTF就行了,

不太严谨的解决方案,希望也会对你有帮助吧哈哈哈哈哈

本文标签: 中文字体matplotlibsimhei