目录
3、复制字体至 matplotlib 库 fonts/ttf 目录
博主(UOS 系统)在用 meplotlib 制作雷达图时,选用喜欢的微软雅黑字体(msyh.ttf),虽然字体已安装到字库,结果仍报错:
findfont: Font family ['msyh'] not found. Falling back to DejaVu Sans.
font family 中并未发现该字体,也即该字体并未被注册,如何解决呢?
Matplotlib 默认情况不支持中文,我们可以使用以下简单的方法来解决。
1、指定文件路径
利用 matplotlib.font_manager.FontProperties() 指向字体文件路径(当前目录或绝对路径)
示例:
import numpy as np
from matplotlib import pyplot as plt
import matplotlib
font = matplotlib.font_manager.FontProperties(fname='msyh.ttf')
x = np.arange(1,11)
y = 2*x + 5
plt.title('线性方程', fontproperties = font)
plt.xlabel('x 轴', fontproperties = font)
plt.ylabel("y 轴", fontproperties = font)
plt.plot(x, y)
plt.show()
输出结果:
2、换用系统字体
在换用之前,首先看一下 matplotlib.font_manager 中注册的字体:
from matplotlib import pyplot as plt
import matplotlib
fonts = sorted([f.name for f in matplotlib.font_manager.fontManager.ttflist])
for i in fonts:
print(i)
输出结果:
......
FZChaoCuHei-M10
FZCuHuoYi-M25S
FZFangSong-Z02
FZHei-B01
FZKai-Z03
FZLiShu-S01
FZShouJinShu-S10S
FZShuSong-Z01
FZSongS-Extended
FZSongS-Extended(SIP)
FZWeiBei-S03
FZXiHeiI-Z08
FZXiaoBiaoSong-B05
FZXiaoBiaoSong-B05S
FZXingKai-S04
FZYaoTi-M06
HYFangSongJ
HYXingKaiJ
HYZhongDengXianJ
HYZhongSongJ
HYZhuanShuF
......
根据打印出的列表,找一个效果相近的中文字体,如FZHei-B01(方正黑体),然后添加到以下代码即可:
plt.rcParams['font.family'] = 'FZHei-B01'
3、复制字体至 matplotlib 库 fonts/ttf 目录
这项工作在 windows 下为小菜一碟,博主所用系统为UOS,则要费一番功夫。因为相应目录为只读状态,需要解锁。
首先,文件管理器查找 matplotlib 库 fonts/ttf 目录,右键点击复制路径:
获得路径(file:///usr/local/lib/python3.7/dist-packages/matplotlib/mpl-data/fonts/ttf)以备解锁使用,具体参见:
也可以运行下述代码获取:
>>> import matplotlib
>>> print(matplotlib.matplotlib_fname())
/usr/local/lib/python3.7/dist-packages/matplotlib/mpl-data/matplotlibrc
解锁后,将所需字体文件拷贝至 ttf 目录 。
其次,修改 matplotlib 库配置文件 matplotlibrc:打开后查找 font.family,其上添加下述代码:
font.family : sans-serif
font.sans-serif : SimHei
axes.unicode_minus : False
最后,清除 matplotlib cache 即可。
4、狸猫换太子
这是一个偷懒的方法。将字体文件复制到matplotlib 库 fonts/ttf 目录后,将其改名为该目录下已有某个字体,然后调用该改名后的字体即可☺
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/106937.html