本文主要内容
介绍三种解决matplotlib/searbon无法中文显示的方法。
抛出问题:
missing from current font:
为什么matplotlib/searbon无法显示中文呢?
答:因为matplotlib的自带字体库不支持中文。
既然matplotlib中自带的字体库不支持中文,那我们就向其中添加支持的字体或者去设置其中的参数就可以解决啦!
方法一:
给matplotlib添加支持的字体 ->> 针对与本.ipynb文件临时的设置。
# 方法一:给matplotlib添加支持的字体 ->> 针对与本.ipynb文件临时的设置
font = {
"family":"SimHei",
"weight":"bold",
"size":12
}
matplotlib.rc("font", **font)
这里不仅仅支持"SimHei"字体,喜欢其他字体自行更换就可以了,同样尺寸也都可以根据喜好更换。
方法二:
通过pyplot的字典rcParams设置参数 ->> 针对与本.ipynb文件临时的设置 。
# 方法二:通过pyplot的字典rcParams设置参数 ->> 针对与本.ipynb文件临时的设置
plt.rcParams['font.sans-serif'] = ['SimHei'] # 步骤一(替换sans-serif字体)
plt.rcParams['axes.unicode_minus'] = False # 步骤二(解决坐标轴负数的负号显示问题)
同样,这里字体也可以根据个人喜好进行更换。
方法三:
设置自定义字体(局部) ->> 只对相应设置的方法有效 ->> 针对性。
from matplotlib.font_manager import FontProperties
# 相当于将windows自带的字体注入到matplotlib字体库
font = FontProperties(fname=r"c:\windows\fonts\simsun.ttc", size=15)
同样,这里字体也可以根据个人喜好进行更换。
总结
这里,我个人比较推荐使用方法二,因为他是临时性的设置,不会影响其他不需要中文显示的.ipynb文件,而且代码也比较简短工整,视觉效果比较好。另外,代码不需要记忆(真记不住/(ㄒoㄒ)/~~),用的时候复制粘贴就好,建议写在导包操作下面,像这样就很不错:
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
当然,大家也可以根据个人喜好选择其他方法。