Comment obtenir une liste de toutes les polices actuellement disponibles pour Matplotlib?

Par exemple, quand je veux définir font dans

matplotlib.rc('font', **font)

Merci.

29
demandé sur nye17 2012-01-06 09:38:14

3 réponses

import matplotlib.font_manager
matplotlib.font_manager.findSystemFonts(fontpaths=None, fontext='ttf')

Vérifier ce pour d'autres options.

44
répondu imsc 2012-01-07 20:27:19

Pour obtenir une liste (lisible) de polices disponibles pour matplotlib:

import matplotlib.font_manager
flist = matplotlib.font_manager.get_fontconfig_fonts()
names = [matplotlib.font_manager.FontProperties(fname=fname).get_name() for fname in flist]
print names

Le documentation recommande get_fontconfig_fonts():

C'est un moyen facile de saisir toutes les polices que l'utilisateur veut faire disponible pour les applications, sans avoir besoin de savoir où tous résider.

Notez que vous pouvez obtenir le nom (inverse) à la recherche de police facilement en utilisant la classe FontProperties:

font = matplotlib.font_manager.FontProperties(family='TeX Gyre Heros')
file = matplotlib.font_manager.findfont(font)

findfont est robuste car il renvoie une police par défaut si elle ne trouve pas de correspondance propriété.

17
répondu alodi 2016-09-05 12:52:58

Par ce blog, ce code, vous obtiendrez des polices disponibles et des échantillons:

import matplotlib.font_manager
from IPython.core.display import HTML

def make_html(fontname):
    return "<p>{font}: <span style='font-family:{font}; font-size: 24px;'>{font}</p>".format(font=fontname)

code = "\n".join([make_html(font) for font in sorted(set([f.name for f in matplotlib.font_manager.fontManager.ttflist]))])

HTML("<div style='column-count: 2;'>{}</div>".format(code))

Par exemple:

entrez la description de l'image ici

2
répondu Max Ghenis 2018-02-24 00:19:34