[Pythonmac-SIG] Using Mac system fonts with matplotlib?
Nicholas Matsakis
matsakis at mit.edu
Mon May 19 19:04:37 CEST 2008
I'm looking for some guidance on using system-installed truetype fonts
with matplotlib. I asked this question on the matplotlib mailing list, but
it didn't garner any responses. Here's what I've found so far, using the
PDF backend in matplotlib 0.91.2 on 10.5/leopard's native python 2.5
(installed using easy_install).
Matplotlib itself is working well and with
matplotlib.font_manager.OSXInstalledFonts() I can see that it seems to
know what fonts I have on my system. I can even get it to find some of
these fonts. However any attempts to use them results in errors when
writing out the figure (I've included some stack traces below).
Are there reasons to think another backend would work if PDF fails? Also,
I'd be interested in an easy way to take a given font file and figure out
whether it is of a type supported by MPL and what name I should give to
MPL to find and use it.
Nick Matsakis
------ an error using /Library/Fonts/tahoma.ttf
Traceback (most recent call last):
...skipping some calls...
File
"/Library/Python/2.5/site-packages/matplotlib-0.91.2-py2.5-macosx-10.5-ppc.e
gg/matplotlib/backend_bases.py",
line 1195, in print_figure
**kwargs)
File
"/Library/Python/2.5/site-packages/matplotlib-0.91.2-py2.5-macosx-10.5-ppc.e
gg/matplotlib/backends/backend_pdf.py", line 1969, in print_pdf
file.close()
File
"/Library/Python/2.5/site-packages/matplotlib-0.91.2-py2.5-macosx-10.5-ppc.e
gg/matplotlib/backends/backend_pdf.py", line 420, in close
self.writeFonts()
File
"/Library/Python/2.5/site-packages/matplotlib-0.91.2-py2.5-macosx-10.5-ppc.e
gg/matplotlib/backends/backend_pdf.py", line 490, in writeFonts
fontdictObject = self.embedTTF(realpath, chars[1])
File
"/Library/Python/2.5/site-packages/matplotlib-0.91.2-py2.5-macosx-10.5-ppc.e
gg/matplotlib/backends/backend_pdf.py", line 859, in embedTTF
ps_name = Name(font.get_sfnt()[(1,0,0,6)])
KeyError: (1, 0, 0, 6)
----- a different error using /System/Library/Fonts/AppleGothic.ttf
...skipping some calls...
File
"/Library/Python/2.5/site-packages/matplotlib-0.91.2-py2.5-macosx-10.5-ppc.e
gg/matplotlib/backend_bases.py", line 1195, in print_figure
**kwargs)
File
"/Library/Python/2.5/site-packages/matplotlib-0.91.2-py2.5-macosx-10.5-ppc.e
gg/matplotlib/backends/backend_pdf.py", line 1969, in print_pdf
file.close()
File
"/Library/Python/2.5/site-packages/matplotlib-0.91.2-py2.5-macosx-10.5-ppc.e
gg/matplotlib/backends/backend_pdf.py", line 420, in close
self.writeFonts()
File
"/Library/Python/2.5/site-packages/matplotlib-0.91.2-py2.5-macosx-10.5-ppc.e
gg/matplotlib/backends/backend_pdf.py", line 490, in writeFonts
fontdictObject = self.embedTTF(realpath, chars[1])
File
"/Library/Python/2.5/site-packages/matplotlib-0.91.2-py2.5-macosx-10.5-ppc.e
gg/matplotlib/backends/backend_pdf.py", line 901, in embedTTF
return embedTTFType3(font, characters, descriptor)
File
"/Library/Python/2.5/site-packages/matplotlib-0.91.2-py2.5-macosx-10.5-ppc.e
gg/matplotlib/backends/backend_pdf.py", line 689, in embedTTFType3
glyph_name = font.get_glyph_name(gind)
RuntimeError: Face has no glyph names
More information about the Pythonmac-SIG
mailing list