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

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.com/font-details/SimHei/
https://fontzone.net/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就行了,

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值