首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Matplotlib找不到基本字体

Matplotlib找不到基本字体
EN

Stack Overflow用户
提问于 2017-02-08 02:16:20
回答 7查看 66.8K关注 0票数 67

我在一个miniconda虚拟环境中的Python3上使用matplotlib版本2.0.0。我在一个unix科学计算集群上工作,在那里我没有root权限。我通常通过ipython notebook执行python代码。如果我执行一个基本命令,例如:

代码语言:javascript
复制
import matplotlib.pyplot as plt
plt.scatter([1,5], [1,5])

我收到一条错误消息:

代码语言:javascript
复制
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)之后,我也可以从此处找到:

代码语言:javascript
复制
import matplotlib as mpl
fm = mpl.font_manager
fm.get_cachedir()

这些命令:

代码语言:javascript
复制
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.

你知道这是怎么回事吗?我怎么才能添加更多的字体?谢谢!

EN

回答 7

Stack Overflow用户

发布于 2018-04-18 01:21:01

为了让它起作用,我必须将当前最热门的两个答案结合起来。以下是对我有效的方法:

代码语言:javascript
复制
$ sudo apt install msttcorefonts -qq
$ rm ~/.cache/matplotlib -rf
票数 45
EN

Stack Overflow用户

发布于 2017-03-17 01:56:51

这对我来说很有效:

代码语言:javascript
复制
$ sudo apt-get install msttcorefonts -qq
票数 25
EN

Stack Overflow用户

发布于 2020-02-03 01:02:30

我实际上是通过

import matplotlib.font_manager

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42097053

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档