相关疑难解决方法(0)

如何在matplotlib中获取字体系列(或字体名称)列表

如何在matplotlib中获取字体系列(或字体名称)列表.

import matplotlib.font_manager
matplotlib.font_manager.findSystemFonts(fontpaths=None, fontext='ttf')
Run Code Online (Sandbox Code Playgroud)

借助此代码,我只能获得字体目录.我怎么能得到字体名称列表

"世纪教科书L","Ubuntu"等

提前致谢.

python matplotlib python-2.7

12
推荐指数
1
解决办法
1万
查看次数

如何使用mpl.rcParams在matplotlib中加载.ttf文件?

我有一个matplotlib脚本启动...

import matplotlib as mpl
import matplotlib.pyplot as plt
import matplotlib.font_manager as fm

mpl.rcParams['xtick.labelsize']=16 
...
Run Code Online (Sandbox Code Playgroud)

我用过这个命令

fm.findSystemFonts()
Run Code Online (Sandbox Code Playgroud)

获取我系统上的字体列表.我发现了我想要使用的.ttf文件的完整路径,

'/usr/share/fonts/truetype/anonymous-pro/Anonymous Pro BI.ttf'
Run Code Online (Sandbox Code Playgroud)

我尝试使用以下命令成功使用此字体

mpl.rcParams['font.family'] = 'anonymous-pro'  
Run Code Online (Sandbox Code Playgroud)

mpl.rcParams['font.family'] = 'Anonymous Pro BI'
Run Code Online (Sandbox Code Playgroud)

这两者都回归了

/usr/lib/pymodules/python2.7/matplotlib/font_manager.py:1218: UserWarning: findfont: Font family ['anonymous-pro'] not found. Falling back to Bitstream Vera Sans
Run Code Online (Sandbox Code Playgroud)

我可以使用mpl.rcParams字典在我的图中设置这个字体吗?

编辑

在阅读了一下之后,似乎这是从.ttf文件中确定字体系列名称的一般问题.在linux或python中这很容易吗?

另外,我试过添加

mpl.use['agg']
mpl.rcParams['text.usetex'] = False
Run Code Online (Sandbox Code Playgroud)

没有任何成功

python fonts matplotlib

11
推荐指数
1
解决办法
7661
查看次数

Enthought Canopy中的Matplotlib字体

我在Canopy中使用matplotlib库,具体功能是xkcd().此功能使用特定字体绘制图表.字体是Comic Sans MS,如果不存在,应该下载.

/home/luis/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/matplotlib/font_manager.py:1236: UserWarning: findfont: Font family ['Humor Sans', 'Comic Sans MS'] not found. Falling back to Bitstream Vera Sans (prop.get_family(), self.defaultFamily[fontext]))
Run Code Online (Sandbox Code Playgroud)

我使用下面的小脚本,它检查字体的存在/不存在.如果不存在,则下载它.

import os
import urllib2
if not os.path.exists('Humor-Sans.ttf'):
    fhandle = urllib2.urlopen('http://antiyawn.com/uploads/Humor-Sans-1.0.ttf')
    open('Humor-Sans.ttf', 'wb').write(fhandle.read())
Run Code Online (Sandbox Code Playgroud)

问题是我仍然没有得到正确的字体来显示.如果字体缓存出现问题,我会执行以下操作:

luis@luis-VirtualBox:~$ rm /home/luis/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/matplotlib/fontList.cache
Run Code Online (Sandbox Code Playgroud)

获得以下内容:

rm: cannot remove ‘/home/luis/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/matplotlib/fontList.cache’: No such file or directory 
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

matplotlib ipython canopy

11
推荐指数
1
解决办法
8120
查看次数

如何设置自定义字体与matplotlib全局字体的自定义路径?

我的应用程序中有一个自定义字体

app_path='/home/user1/myapp'
fname='/home/user1/myapp/font/myfont.ttf'
Run Code Online (Sandbox Code Playgroud)

要将globlal字体设置为matplotlib,文档会这样说:

plt.rcParams['font.sans-serif']=['xxx font']
Run Code Online (Sandbox Code Playgroud)

但它只适用于已经在系统字体路径中的字体,我必须在我的应用程序路径 '/home/user1/myapp/font/myfont.ttf'中使用我的自定义字体

我知道有这样的方式:

fname='/home/user1/myapp/font/myfont.ttf'
myfont=fm.FontProperties(fname=fname)
ax1.set_title('title test',fontproperties=myfont)
Run Code Online (Sandbox Code Playgroud)

但这不是我想要的,我不想一直设置' fontproperties ',因为有一些代码要改变

python fonts matplotlib

6
推荐指数
3
解决办法
3474
查看次数

标签 统计

matplotlib ×4

python ×3

fonts ×2

canopy ×1

ipython ×1

python-2.7 ×1