2011-10-11 9 views

risposta

49

vedere l'esempio qui: http://matplotlib.sourceforge.net/examples/api/font_file.html

In generale, si farebbe una cosa del genere, se hai intenzione di utilizzare uno specifico file di .ttf. (Tenete a mente che punta a un file di font specifico è di solito una cattiva idea!)

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

fig, ax = plt.subplots() 
ax.plot(range(10)) 

prop = fm.FontProperties(fname='/usr/share/fonts/truetype/groovygh.ttf') 
ax.set_title('This is some random font', fontproperties=prop, size=32) 

plt.show() 

enter image description here

Di solito, si era appena selezionare il nome del carattere, e lasciate matplotlib preoccuparsi di trovare il file specifico. Per esempio.

import matplotlib.pyplot as plt 

plt.plot(range(10)) 
plt.title('This is some random font', family='GroovyGhosties', size=32) 

plt.show() 

Se si desidera avere matplotlib sempre utilizzare un particolare tipo di carattere, quindi customize your .matplotlibrc file. (font.family è ciò che si desidera impostare. Si noti che è necessario specificare il nome del carattere, non il percorso di un file .ttf specifico.)

Come esempio di fare questo dinamicamente (cioè senza impostare un specifica .matplotlibrc file):

import matplotlib as mpl 
mpl.rcParams['font.family'] = 'GroovyGhosties' 

import matplotlib.pyplot as plt 

plt.plot(range(10)) 
plt.title('Everything is crazy!!!', size=32) 
plt.show() 

enter image description here

0

Su * nix, è possibile utilizzare tutti i font del sistema, consentendo fontconfig backend di matplotlib.

Tuttavia, matplotlib non parla in realtà alle librerie fontconfig che emula il suo comportamento eseguendo le utility cli di fontconfig.

Pertanto, il riempimento della cache di matplotlib fontconfig in modo che scopra nuovi caratteri può essere un salvavita (l'esistenza di questa cache è una prova diretta della mancanza di integrazione completa di fontconfig).

Problemi correlati