我在一个miniconda虚拟环境中的Python3上使用matplotlib版本2.0.0。我在一个unix科学计算集群上工作,在那里我没有root权限。我通常通过ipython notebook执行python代码。如果我执行一个基本命令,例如:
import matplotlib.pyplot as plt
plt.scatter([1,5], [1,5])
我收到一条错误消息:
path_to_miniconda/miniconda3/envs/conda34/lib/python3.4/site-
packages/matplotlib/font_manager.py:1297: UserWarning: findfont: Font family
['sans-serif'] not found. Falling back to DejaVu Sans
(prop.get_family(), self.defaultFamily[fontext]))
我希望能够使用Times New Roman字体,但即使在删除字体缓存文件(fontList.py3k.cache)之后,我也可以从此处找到:
import matplotlib as mpl
fm = mpl.font_manager
fm.get_cachedir()
这些命令:
mpl.rcParams['font.family'] = ['serif']
mpl.rcParams['font.serif'] = ['Times New Roman']
没有效果,我得到了与上面相同的错误。true type字体目录:
path_to_miniconda/miniconda3/envs/conda34/lib/python3.4/site-packages/matplotlib/mpl-data/fonts/ttf/
只有40种字体的类型: DejaVuSerif,DejaVuSans,STIX,cmb,cmt,cmy.
你知道这是怎么回事吗?我怎么才能添加更多的字体?谢谢!
发布于 2018-04-18 01:21:01
为了让它起作用,我必须将当前最热门的两个答案结合起来。以下是对我有效的方法:
$ sudo apt install msttcorefonts -qq
$ rm ~/.cache/matplotlib -rf
发布于 2017-03-17 01:56:51
这对我来说很有效:
$ sudo apt-get install msttcorefonts -qq
发布于 2020-02-03 01:02:30
我实际上是通过
import matplotlib.font_manager
https://stackoverflow.com/questions/42097053
复制相似问题