matplotlib.font_manager#

Un module pour rechercher, gérer et utiliser des polices sur toutes les plateformes.

Ce module fournit une FontManagerinstance unique, fontManager, qui peut être partagée entre les backends et les plates-formes. La findfont fonction renvoie le meilleur fichier de police TrueType (TTF) dans le chemin de police local ou système qui correspond à l' FontProperties instance spécifiée. Le FontManagergère également les fichiers de police Adobe Font Metrics (AFM) à utiliser par le backend PostScript.

La conception est basée sur la spécification de police W3C Cascading Style Sheet, Level 1 (CSS1) . Les versions futures pourront implémenter les spécifications de niveau 2 ou 2.1.

classe matplotlib.font_manager. FontManager ( taille = Aucun , poids = 'normal' ) [source] #

Socles :object

Lors de l'importation, l' FontManagerinstance singleton crée une liste de polices ttf et afm et met en cache leurs fichiers FontProperties. La FontManager.findfont méthode effectue une recherche du voisin le plus proche pour trouver la police qui correspond le mieux à la spécification. Si aucune correspondance suffisante n'est trouvée, la police par défaut est renvoyée.

addfont ( chemin ) [source] #

Mettez en cache les propriétés de la police dans le chemin pour la rendre disponible pour le FontManager. Le type de police est déduit du suffixe du chemin.

Paramètres :
path str ou path-like
propriété defaultFont #
findfont ( prop , fontext = 'ttf' , répertoire = None , fallback_to_default = True , restart_if_missing = True ) [source] #

Trouvez une police qui correspond le mieux aux propriétés de police données.

Paramètres :
prop str ouFontProperties

Les propriétés de police à rechercher. Il peut s'agir d'un FontPropertiesobjet ou d'une chaîne définissant un modèle de fontconfig .

fontext {'ttf', 'afm'}, par défaut : 'ttf'

L'extension du fichier de police :

  • 'ttf' : polices TrueType et OpenType (.ttf, .ttc, .otf)

  • « afm » : métriques des polices Adobe (.afm)

chaîne de répertoire , facultatif

S'il est fourni, recherchez uniquement ce répertoire et ses sous-répertoires.

fallback_to_default booléen

Si True, se rabattra sur la famille de polices par défaut (généralement "DejaVu Sans" ou "Helvetica") si la première recherche échoue.

reconstruire_if_missing booléen

S'il faut reconstruire le cache de polices et effectuer une nouvelle recherche si la première correspondance semble pointer vers une police inexistante (c'est-à-dire que le cache de polices contient des entrées obsolètes).

Retours :
chaîne

Le nom de fichier de la meilleure police correspondante.

Remarques

Ceci effectue une recherche du voisin le plus proche. Chaque police reçoit un score de similarité avec les propriétés de la police cible. La première police avec le score le plus élevé est renvoyée. Si aucune correspondance en dessous d'un certain seuil n'est trouvée, la police par défaut (généralement DejaVu Sans) est renvoyée.

Le résultat est mis en cache, de sorte que les recherches ultérieures n'ont pas à effectuer la recherche du voisin le plus proche O(n).

Reportez-vous à la documentation W3C Cascading Style Sheet, Level 1 pour une description de l'algorithme de recherche de polices.

statique get_default_size ( ) [source] #

Renvoie la taille de police par défaut.

get_default_weight ( ) [source] #

Renvoie l'épaisseur de police par défaut.

get_font_names ( ) [source] #

Renvoie la liste des polices disponibles.

score_family ( families , family2 ) [source] #

Renvoie un score de correspondance entre la liste des familles de polices dans families et le nom de famille de polices family2 .

Une correspondance exacte en tête de liste renvoie 0,0.

Une correspondance plus bas dans la liste renverra entre 0 et 1.

Aucune correspondance ne renverra 1.0.

score_size ( taille1 , taille2 ) [source] #

Renvoie un score de correspondance entre size1 et size2 .

Si size2 (la taille spécifiée dans le fichier de police) est 'scalable', cette fonction renvoie toujours 0.0, puisque n'importe quelle taille de police peut être générée.

Sinon, le résultat est la distance absolue entre size1 et size2 , normalisée de sorte que la plage habituelle de tailles de police (6pt - 72pt) se situe entre 0,0 et 1,0.

score_stretch ( étirer1 , étirer2 ) [source] #

Renvoie un score de correspondance entre stretch1 et stretch2 .

Le résultat est la valeur absolue de la différence entre les valeurs numériques CSS de stretch1 et stretch2 , normalisée entre 0,0 et 1,0.

score_style ( style1 , style2 ) [source] #

Renvoie un score de correspondance entre style1 et style2 .

Une correspondance exacte renvoie 0,0.

Une correspondance entre 'italic' et 'oblique' renvoie 0,1.

Aucune correspondance ne renvoie 1,0.

score_variant ( variante1 , variante2 ) [source] #

Renvoie un score de correspondance entre variant1 et variant2 .

Une correspondance exacte renvoie 0,0, sinon 1,0.

score_weight ( poids1 , poids2 ) [source] #

Renvoie un score de correspondance entre weight1 et weight2 .

Le résultat est 0,0 si poids1 et poids 2 sont donnés sous forme de chaînes et ont la même valeur.

Sinon, le résultat est la valeur absolue de la différence entre les valeurs numériques CSS de weight1 et weight2 , normalisée entre 0,05 et 1,0.

set_default_weight ( poids ) [source] #

Définissez le poids de la police par défaut. La valeur initiale est 'normale'.

classe matplotlib.font_manager. FontProperties ( family = None , style = None , variant = None , weight = None , stretch = None , size = None , fname = None , math_fontfamily = None ) [source] #

Socles :object

Une classe pour stocker et manipuler les propriétés des polices.

Les propriétés de police sont les six propriétés décrites dans la feuille de style en cascade du W3C, spécification de police de niveau 1 et math_fontfamily pour les polices mathématiques :

  • famille : une liste de noms de polices par ordre décroissant de priorité. Les éléments peuvent inclure un nom de famille de police générique, soit 'sans-serif', 'serif', 'cursive', 'fantasy' ou 'monospace'. Dans ce cas, la police réelle à utiliser sera recherchée à partir du rcParam associé pendant le processus de recherche dans findfont. Par défaut : rcParams["font.family"](par défaut : ['sans-serif'])

  • style : Soit 'normal', 'italique' ou 'oblique'. Par défaut : rcParams["font.style"](par défaut : 'normal')

  • variante : Soit 'normal' ou 'petites majuscules'. Par défaut : rcParams["font.variant"](par défaut : 'normal')

  • stretch : une valeur numérique comprise entre 0 et 1 000 ou l'une des valeurs suivantes : « ultra-condensé », « extra-condensé », « condensé », « semi-condensé », « normal », « semi-expansé », « expansé », 'extra-élargi' ou 'ultra-élargi'. Par défaut : rcParams["font.stretch"](par défaut : 'normal')

  • poids : une valeur numérique comprise entre 0 et 1 000 ou l'une des valeurs suivantes : « ultraléger », « léger », « normal », « normal », « livre », « moyen », « roman », « semibold », « demibold », 'demi', 'gras', 'lourd', 'extra gras', 'noir'. Par défaut : rcParams["font.weight"](par défaut : 'normal')

  • taille : Soit une valeur relative de 'xx-small', 'x-small', 'small', 'medium', 'large', 'x-large', 'xx-large' ou une taille de police absolue, par exemple, 10. Par défaut : rcParams["font.size"](par défaut : 10.0)

  • math_fontfamily : la famille de polices utilisée pour afficher le texte mathématique. Les valeurs prises en charge sont : 'dejavusans', 'dejavuserif', 'cm', 'stix', 'stixsans' et 'custom'. Par défaut : rcParams["mathtext.fontset"](par défaut : 'dejavusans')

Alternativement, une police peut être spécifiée en utilisant le chemin absolu vers un fichier de police, en utilisant le fname kwarg. Cependant, dans ce cas, il est généralement plus simple de simplement passer le chemin (en tant que pathlib.Path, et non en tant que str) à la police kwarg de l' Textobjet.

L'utilisation préférée des tailles de police est d'utiliser les valeurs relatives, par exemple, 'large', au lieu des tailles de police absolues, par exemple, 12. Cette approche permet à toutes les tailles de texte d'être agrandies ou réduites en fonction de la taille de police par défaut du gestionnaire de polices.

Cette classe acceptera également un modèle fontconfig , s'il s'agit du seul argument fourni. Cette prise en charge ne dépend pas de fontconfig ; nous empruntons simplement sa syntaxe de modèle pour l'utiliser ici.

Notez que le gestionnaire de polices interne de Matplotlib et fontconfig utilisent un algorithme différent pour rechercher les polices, de sorte que les résultats du même modèle peuvent être différents dans Matplotlib que dans d'autres applications qui utilisent fontconfig.

copier ( ) [source] #

Renvoyez une copie de vous-même.

get_family ( ) [source] #

Renvoie une liste de noms de famille de polices individuels ou de noms de famille génériques.

Les familles de polices ou les familles de polices génériques (qui seront résolues à partir de leurs rcParams respectifs lors de la recherche d'une police correspondante) dans l'ordre de préférence.

obtenir_fichier ( ) [source] #

Renvoie le nom de fichier de la police associée.

get_fontconfig_pattern ( ) [source] #

Obtenez un modèle fontconfig approprié pour rechercher la police comme spécifié avec l' utilitaire de fontconfig.fc-match

Cette prise en charge ne dépend pas de fontconfig ; nous empruntons simplement sa syntaxe de modèle pour l'utiliser ici.

get_math_fontfamily ( ) [source] #

Renvoie le nom de la famille de polices utilisée pour le texte mathématique.

La police par défaut est rcParams["mathtext.fontset"](par défaut : 'dejavusans').

get_name ( ) [source] #

Renvoie le nom de la police qui correspond le mieux aux propriétés de la police.

get_size ( ) [source] #

Renvoie la taille de la police.

get_size_in_points ( ) [source] #

Renvoie la taille de la police.

get_slant ( ) [source] #

Renvoie le style de police. Les valeurs sont : 'normal', 'italic' ou 'oblique'.

get_stretch ( ) [source] #

Renvoie l'étirement ou la largeur de la police. Les options sont : 'ultra-condensé', 'extra-condensé', 'condensé', 'semi-condensé', 'normal', 'semi-détendu', 'détendu', 'extra-détendu', 'ultra-détendu' .

get_style ( ) [source] #

Renvoie le style de police. Les valeurs sont : 'normal', 'italic' ou 'oblique'.

get_variant ( ) [source] #

Renvoie la variante de police. Les valeurs sont : 'normal' ou 'small-caps'.

get_weight ( ) [source] #

Définissez le poids de la police. Les options sont : une valeur numérique comprise entre 0 et 1 000 ou l'une des valeurs suivantes : "léger", "normal", "régulier", "livre", "moyen", "roman", "semibold", "demibold", "demi" , 'gras', 'lourd', 'extra gras', 'noir'

set_family ( famille ) [source] #

Changez la famille de polices. Peut être soit un alias (le nom générique est le langage CSS), tel que : 'serif', 'sans-serif', 'cursive', 'fantasy' ou 'monospace', un nom de police réel ou une liste de noms de police réels . Les noms de police réels ne sont pas pris en charge lorsque rcParams["text.usetex"](par défaut : False) est True. Par défaut : rcParams["font.family"](par défaut : ['sans-serif'])

set_file ( fichier ) [source] #

Définissez le nom de fichier du fichier de polices à utiliser. Dans ce cas, toutes les autres propriétés seront ignorées.

set_fontconfig_pattern ( motif ) [source] #

Définissez les propriétés en analysant un modèle fontconfig .

Cette prise en charge ne dépend pas de fontconfig ; nous empruntons simplement sa syntaxe de modèle pour l'utiliser ici.

set_math_fontfamily ( fontfamily ) [source] #

Définissez la famille de polices pour le texte en mode mathématique.

S'il n'est pas défini explicitement, rcParams["mathtext.fontset"](par défaut : 'dejavusans') sera utilisé.

Paramètres :
fontfamily str

Le nom de la famille de polices.

Les familles de polices disponibles sont définies dans le fichier matplotlibrc.template ici

set_name ( famille ) [source] #

Changez la famille de polices. Peut être soit un alias (le nom générique est le langage CSS), tel que : 'serif', 'sans-serif', 'cursive', 'fantasy' ou 'monospace', un nom de police réel ou une liste de noms de police réels . Les noms de police réels ne sont pas pris en charge lorsque rcParams["text.usetex"](par défaut : False) est True. Par défaut : rcParams["font.family"](par défaut : ['sans-serif'])

set_size ( taille ) [source] #

Définissez la taille de la police.

Paramètres :
taille flottante ou {'xx-small', 'x-small', 'small', 'medium', 'large', 'x-large', 'xx-large'}, par défaut : rcParams["font.size"](par défaut : 10.0)

Si float, la taille de la police en points. Les valeurs de chaîne indiquent les tailles par rapport à la taille de police par défaut.

set_slant ( style ) [source] #

Définissez le style de police.

Paramètres :
style {'normal', 'italique', 'oblique'}, par défaut : rcParams["font.style"](par défaut : 'normal')
set_stretch ( étirer ) [source] #

Définissez l'étirement ou la largeur de la police.

Paramètres :
stretch int ou {'ultra-condensé', 'extra-condensé', 'condensé', 'semi-condensé', 'normal', 'semi-développé', 'développé', 'extra-développé', 'ultra-développé '}, par défaut : rcParams["font.stretch"](par défaut : 'normal')

Si int, doit être compris entre 0 et 1000.

set_style ( style ) [source] #

Définissez le style de police.

Paramètres :
style {'normal', 'italique', 'oblique'}, par défaut : rcParams["font.style"](par défaut : 'normal')
set_variant ( variante ) [source] #

Définissez la variante de police.

Paramètres :
variante {'normal', 'petites majuscules'}, par défaut : rcParams["font.variant"](par défaut : 'normal')
set_weight ( poids ) [source] #

Définissez le poids de la police.

Paramètres :
poids int ou {'ultralight', 'light', 'normal', 'regular', 'book', 'medium', 'roman', 'semibold', 'demibold', 'demi', 'bold', 'heavy ', 'extra gras', 'noir'}, par défaut : rcParams["font.weight"](par défaut : 'normal')

Si int, doit être compris entre 0 et 1000.

matplotlib.font_manager. afmFontProperty ( chemin de police , police ) [source] #

Extraire des informations d'un fichier de police AFM.

Paramètres :
police AFM

Le fichier de police AFM à partir duquel les informations seront extraites.

Retours :
FontEntry

Les propriétés de police extraites.

matplotlib.font_manager. findSystemFonts ( fontpaths = None , fontext = 'ttf' ) [source] #

Rechercher des polices dans les chemins de police spécifiés. Si aucun chemin n'est donné, utilisera un ensemble standard de chemins système, ainsi que la liste des polices suivies par fontconfig si fontconfig est installé et disponible. Une liste de polices TrueType est renvoyée par défaut avec les polices AFM en option.

matplotlib.font_manager. findfont ( prop , fontext = 'ttf' , répertoire = None , fallback_to_default = True , restart_if_missing = True ) [source] #

Trouvez une police qui correspond le mieux aux propriétés de police données.

Paramètres :
prop str ouFontProperties

Les propriétés de police à rechercher. Il peut s'agir d'un FontPropertiesobjet ou d'une chaîne définissant un modèle de fontconfig .

fontext {'ttf', 'afm'}, par défaut : 'ttf'

L'extension du fichier de police :

  • 'ttf' : polices TrueType et OpenType (.ttf, .ttc, .otf)

  • « afm » : métriques des polices Adobe (.afm)

chaîne de répertoire , facultatif

S'il est fourni, recherchez uniquement ce répertoire et ses sous-répertoires.

fallback_to_default booléen

Si True, se rabattra sur la famille de polices par défaut (généralement "DejaVu Sans" ou "Helvetica") si la première recherche échoue.

reconstruire_if_missing booléen

S'il faut reconstruire le cache de polices et effectuer une nouvelle recherche si la première correspondance semble pointer vers une police inexistante (c'est-à-dire que le cache de polices contient des entrées obsolètes).

Retours :
chaîne

Le nom de fichier de la meilleure police correspondante.

Remarques

Ceci effectue une recherche du voisin le plus proche. Chaque police reçoit un score de similarité avec les propriétés de la police cible. La première police avec le score le plus élevé est renvoyée. Si aucune correspondance en dessous d'un certain seuil n'est trouvée, la police par défaut (généralement DejaVu Sans) est renvoyée.

Le résultat est mis en cache, de sorte que les recherches ultérieures n'ont pas à effectuer la recherche du voisin le plus proche O(n).

Reportez-vous à la documentation W3C Cascading Style Sheet, Level 1 pour une description de l'algorithme de recherche de polices.

matplotlib.font_manager. get_font ( font_filepaths , hinting_factor = None ) [source] #

Récupère un ft2font.FT2Fontobjet avec une liste de chemins de fichiers.

Paramètres :
font_filepaths Iterable[chaîne, chemin, octets], chaîne, chemin, octets

Chemins relatifs ou absolus des fichiers de polices à utiliser.

S'il s'agit d'une seule chaîne, octets ou pathlib.Path, elle sera traitée comme une liste avec cette entrée uniquement.

Si plus d'un chemin de fichier est passé, alors l'objet FT2Font retourné passera par les polices, dans l'ordre donné, pour trouver un glyphe nécessaire.

Retours :
ft2font.FT2Font
matplotlib.font_manager. get_font_names ( ) [source] #

Renvoie la liste des polices disponibles.

matplotlib.font_manager. get_fontconfig_fonts ( fontext = 'ttf' ) [source] #

[ Obsolète ] Liste les noms de fichiers de police connus pour fc-listavoir l'extension donnée.

Remarques

Obsolète depuis la version 3.5.

matplotlib.font_manager. get_fonttext_synonyms ( fontext ) [source] #

Renvoie une liste d'extensions de fichiers qui sont des synonymes de l'extension de fichier donnée fileext .

matplotlib.font_manager. is_opentype_cff_font ( nom de fichier ) [source] #

Renvoie si la police donnée est une police Postscript Compact Font Format incorporée dans un wrapper OpenType. Utilisé par les backends PostScript et PDF qui ne peuvent pas créer de sous-ensembles de ces polices.

matplotlib.font_manager. json_dump ( données , nom de fichier ) [source] #

Videz les données au format JSON dans le fichier nommé filename .FontManager

Voir également

json_load

Remarques

Les chemins de fichiers qui sont des enfants du chemin de données Matplotlib (généralement, les polices livrées avec Matplotlib) sont stockés par rapport à ce chemin de données (pour rester valides sur virtualenvs).

Cette fonction verrouille temporairement le fichier de sortie pour empêcher plusieurs processus d'écraser la sortie de l'autre.

matplotlib.font_manager. json_load ( nom de fichier ) [source] #

Chargez un FontManagerà partir du fichier JSON nommé filename .

Voir également

json_dump
matplotlib.font_manager. list_fonts ( répertoire , extensions ) [source] #

Renvoie une liste de toutes les polices correspondant à l'une des extensions, trouvées récursivement sous le répertoire.

matplotlib.font_manager. ttfFontProperty ( police ) [source] #

Extraire des informations d'un fichier de police TrueType.

Paramètres :
Police de caractèreFT2Font

Le fichier de police TrueType à partir duquel les informations seront extraites.

Retours :
FontEntry

Les propriétés de police extraites.

matplotlib.font_manager. win32FontDirectory ( ) [source] #

Renvoie le répertoire de polices spécifié par l'utilisateur pour Win32. Ceci est recherché à partir de la clé de registre

\\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Fonts

Si la clé n'est pas trouvée, %WINDIR%\Fontselle sera retournée.

matplotlib.font_manager. win32InstalledFonts ( répertoire = Aucun , fontext = 'ttf' ) [source] #

[ Obsolète ] Recherche des polices dans le répertoire de polices spécifié ou utilise les répertoires système s'il n'y en a pas. De plus, il recherche les polices utilisateur installées. Une liste de noms de fichiers de polices TrueType est renvoyée par défaut, ou les polices AFM si fontext == 'afm'.

Remarques

Obsolète depuis la version 3.5.

classe matplotlib.font_manager. FontEntry ( fname : str = '' , name : str = '' , style : str = 'normal' , variant : str = 'normal' , weight : str = 'normal' , stretch : str = 'normal' , size : str = 'moyen' ) #

Une classe pour stocker les propriétés de la police.

Il est utilisé lors du remplissage du dictionnaire de recherche de polices.