2015-01-20 2 views
7

ho carattere Arial installato nel mio sistema:Forza matplotlibrc utilizzare Arial (percorso di font)

/usr/share/fonts/truetype/msttcorefonts/Arial_Bold_Italic.ttf 
/usr/share/fonts/truetype/msttcorefonts/arialbi.ttf 
/usr/share/fonts/truetype/msttcorefonts/Arial_Bold.ttf 
/usr/share/fonts/truetype/msttcorefonts/arial.ttf 
/usr/share/fonts/truetype/msttcorefonts/ariali.ttf 
/usr/share/fonts/truetype/msttcorefonts/arialbd.ttf 
/usr/share/fonts/truetype/msttcorefonts/Arial.ttf 
/usr/share/fonts/truetype/msttcorefonts/Arial_Italic.ttf 
/usr/share/fonts/truetype/msttcorefonts/Arial_Black.ttf 
/usr/share/xbmc/media/Fonts/arial.ttf 
/usr/local/share/texmf/fonts/tfm/urw/arial 
/usr/local/share/texmf/fonts/afm/urw/arial 
/usr/local/share/texmf/fonts/vf/urw/arial 
/usr/local/share/texmf/fonts/type1/urw/arial 

ho cambiato dentro il mio matplotlibrc tra cui la linea:

font.sans-serif  : Arial 

se controllo interno IPython:

import matplotlib.pyplot as plt 
plt.plot([1,2,3,4,5,], '*') 
t = plt.ylabel(r'1, 2, 3, 8, 9 6 11 Testing Label') 
print(t.get_fontname()) 

L'output è:

myhome/local/lib/python2.7/site-packages/matplotlib-1.4.2-py2.7-linux- 
x86_64.egg/matplotlib/font_manager.py:1279: UserWarning: findfont: Font 
family [u'sans-serif'] not found. Falling back to Bitstream Vera Sans 
(prop.get_family(), self.defaultFamily[fontext])) 

Bitstream Vera Sans 

Come posso modificare questo comportamento e utilizzare i caratteri Arial per tutti i miei grafici? Perché il font Arial non è caricato?

È interessante notare che se utilizzo Seaborn, restituisce Liberation Sans dove il primo carattere (all'interno della lista dei caratteri interni) è Arial e il secondo è Liberation Sans.

+1

Sembrerebbe che la tua domanda abbia avuto risposta sulla mailing list matplotlib di Benjamin Root. Soluzione: "elimina la cache dei font (solitamente in ~/.matplotlib). I font installati dopo il primo utilizzo di matplotlib spesso non vengono mai riconosciuti." –

risposta

9

Come suggerito da @BenjaminRoot per eliminare la cache dei font su ~/.matplotlib

Infatti nel mio sistema Debian, con roba pitone all'interno dell'ecosistema virtualenv, tale cartella è stato localizzato a ~/.cache/matplotlib/ Ho cancellato tutti i file e cartelle e il la cache è stata rigenerata di nuovo. Ora funziona! =]