matplotlib.font_manager#

Ein Modul zum Finden, Verwalten und Verwenden von Schriftarten auf verschiedenen Plattformen.

Dieses Modul stellt eine einzelne FontManager-Instanz, fontManager, bereit, die über Backends und Plattformen hinweg gemeinsam genutzt werden kann. Die Funktion findfont gibt die beste TrueType (TTF)-Schriftartdatei im lokalen oder System-Schriftartpfad zurück, die mit der angegebenen FontProperties-Instanz übereinstimmt. Der FontManager verwaltet auch Adobe Font Metrics (AFM)-Schriftartdateien für die Verwendung durch das PostScript-Backend. Die Funktion FontManager.addfont fügt eine benutzerdefinierte Schriftart aus einer Datei hinzu, ohne sie im Betriebssystem zu installieren.

Das Design basiert auf der W3C Cascading Style Sheet, Level 1 (CSS1) Schriftartspezifikation. Zukünftige Versionen können die Level 2 oder 2.1 Spezifikationen implementieren.

class matplotlib.font_manager.FontManager(size=None, weight='normal')[Quelle]#

Bases: object

Beim Import erstellt die Singleton-Instanz FontManager eine Liste von ttf- und afm-Schriftarten und speichert deren FontProperties im Cache. Die Methode FontManager.findfont führt eine Nearest-Neighbor-Suche durch, um die Schriftart zu finden, die der Spezifikation am nächsten kommt. Wenn keine ausreichend gute Übereinstimmung gefunden wird, wird die Standardschriftart zurückgegeben.

Schriftarten, die mit der Methode FontManager.addfont hinzugefügt wurden, bleiben nicht im Cache erhalten; daher muss addfont jedes Mal aufgerufen werden, wenn Matplotlib importiert wird. Diese Methode sollte nur dann verwendet werden, wenn eine Schriftart nicht auf andere Weise auf Ihrem Betriebssystem installiert werden kann.

Anmerkungen

Die Methode FontManager.addfont muss auf der globalen FontManager-Instanz aufgerufen werden.

Beispielverwendung

import matplotlib.pyplot as plt
from matplotlib import font_manager

font_dirs = ["/resources/fonts"]  # The path to the custom font file.
font_files = font_manager.findSystemFonts(fontpaths=font_dirs)

for font_file in font_files:
    font_manager.fontManager.addfont(font_file)
addfont(path)[Quelle]#

Zwischenspeichern der Eigenschaften der Schriftart unter path, um sie dem FontManager zur Verfügung zu stellen. Der Schriftarttyp wird aus der Pfad-Endung abgeleitet.

Parameter:
pathstr oder Pfad-ähnlich

Anmerkungen

Diese Methode ist nützlich, um eine benutzerdefinierte Schriftart hinzuzufügen, ohne sie in Ihrem Betriebssystem zu installieren. Die Singleton-Instanz FontManager bietet Anwendungsbeispiele und Hinweise zu dieser Funktion.

property defaultFont#
findfont(prop, fontext='ttf', directory=None, fallback_to_default=True, rebuild_if_missing=True)[Quelle]#

Finden Sie den Pfad zur Schriftartdatei, die den angegebenen Schriftarteigenschaften am nächsten kommt.

Parameter:
propstr oder FontProperties

Die zu suchenden Schriftarteigenschaften. Dies kann entweder ein FontProperties-Objekt oder eine Zeichenkette sein, die ein fontconfig-Muster definiert.

fontext{'ttf', 'afm'}, Standard: 'ttf'

Die Erweiterung der Schriftartdatei

  • 'ttf': TrueType- und OpenType-Schriftarten (.ttf, .ttc, .otf)

  • 'afm': Adobe Font Metrics (.afm)

directorystr, optional

Wenn angegeben, wird nur in diesem Verzeichnis und seinen Unterverzeichnissen gesucht.

fallback_to_defaultbool

Wenn True, wird auf die Standardschriftartfamilie (normalerweise "DejaVu Sans" oder "Helvetica") zurückgegriffen, wenn die erste Suche fehlschlägt.

rebuild_if_missingbool

Ob der Schriftart-Cache neu aufgebaut und erneut gesucht werden soll, wenn die erste Übereinstimmung auf eine nicht existierende Schriftart zu zeigen scheint (d. h. der Schriftart-Cache enthält veraltete Einträge).

Gibt zurück:
str

Der Dateiname der am besten passenden Schriftart.

Anmerkungen

Dies führt eine Nearest-Neighbor-Suche durch. Jeder Schriftart wird eine Ähnlichkeitsbewertung zu den Ziel-Schriftarteigenschaften zugewiesen. Die erste Schriftart mit der höchsten Bewertung wird zurückgegeben. Wenn keine Übereinstimmungen unterhalb einer bestimmten Schwelle gefunden werden, wird die Standardschriftart (normalerweise DejaVu Sans) zurückgegeben.

Das Ergebnis wird im Cache gespeichert, sodass nachfolgende Suchen keine O(n)-Nearest-Neighbor-Suche durchführen müssen.

Siehe die W3C Cascading Style Sheet, Level 1 Dokumentation für eine Beschreibung des Algorithmus zur Schriftartensuche.

static get_default_size()[Quelle]#

Gibt die Standard-Schriftgröße zurück.

get_default_weight()[Quelle]#

Gibt die Standard-Schriftstärke zurück.

get_font_names()[Quelle]#

Gibt die Liste der verfügbaren Schriftarten zurück.

score_family(families, family2)[Quelle]#

Gibt eine Trefferbewertung zwischen der Liste der Schriftartfamilien in families und dem Namen der Schriftartfamilie family2 zurück.

Eine exakte Übereinstimmung am Anfang der Liste ergibt 0,0.

Eine Übereinstimmung weiter unten in der Liste ergibt zwischen 0 und 1.

Keine Übereinstimmung ergibt 1,0.

score_size(size1, size2)[Quelle]#

Gibt eine Trefferbewertung zwischen size1 und size2 zurück.

Wenn size2 (die in der Schriftartdatei angegebene Größe) 'scalable' ist, gibt diese Funktion immer 0,0 zurück, da jede Schriftgröße erzeugt werden kann.

Andernfalls ist das Ergebnis der absolute Abstand zwischen size1 und size2, normalisiert, sodass der übliche Bereich von Schriftgrößen (6pt - 72pt) zwischen 0,0 und 1,0 liegt.

score_stretch(stretch1, stretch2)[Quelle]#

Gibt eine Trefferbewertung zwischen stretch1 und stretch2 zurück.

Das Ergebnis ist der absolute Wert der Differenz zwischen den CSS-numerischen Werten von stretch1 und stretch2, normalisiert zwischen 0,0 und 1,0.

score_style(style1, style2)[Quelle]#

Gibt eine Trefferbewertung zwischen style1 und style2 zurück.

Eine exakte Übereinstimmung ergibt 0,0.

Eine Übereinstimmung zwischen 'italic' und 'oblique' ergibt 0,1.

Keine Übereinstimmung ergibt 1,0.

score_variant(variant1, variant2)[Quelle]#

Gibt eine Trefferbewertung zwischen variant1 und variant2 zurück.

Eine exakte Übereinstimmung ergibt 0,0, andernfalls 1,0.

score_weight(weight1, weight2)[Quelle]#

Gibt eine Trefferbewertung zwischen weight1 und weight2 zurück.

Das Ergebnis ist 0,0, wenn sowohl weight1 als auch weight 2 als Zeichenketten angegeben sind und denselben Wert haben.

Andernfalls ist das Ergebnis der absolute Wert der Differenz zwischen den CSS-numerischen Werten von weight1 und weight2, normalisiert zwischen 0,05 und 1,0.

set_default_weight(weight)[Quelle]#

Legt die Standard-Schriftstärke fest. Der Anfangswert ist 'normal'.

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

Bases: object

Eine Klasse zum Speichern und Manipulieren von Schriftarteigenschaften.

Die Schriftarteigenschaften sind die sechs Eigenschaften, die in der W3C Cascading Style Sheet, Level 1 Schriftartspezifikation beschrieben sind, sowie math_fontfamily für mathematische Schriftarten.

  • family: Eine Liste von Schriftartnamen in absteigender Reihenfolge der Priorität. Die Elemente können einen generischen Schriftartfamiliennamen enthalten, entweder 'sans-serif', 'serif', 'cursive', 'fantasy' oder 'monospace'. In diesem Fall wird die tatsächlich zu verwendende Schriftart während des Suchvorgangs in findfont anhand des zugehörigen rcParam nachgeschlagen. Standard: rcParams["font.family"] (Standard: ['sans-serif'])

  • style: Entweder 'normal', 'italic' oder 'oblique'. Standard: rcParams["font.style"] (Standard: 'normal')

  • variant: Entweder 'normal' oder 'small-caps'. Standard: rcParams["font.variant"] (Standard: 'normal')

  • stretch: Ein numerischer Wert im Bereich 0-1000 oder einer der Werte 'ultra-condensed', 'extra-condensed', 'condensed', 'semi-condensed', 'normal', 'semi-expanded', 'expanded', 'extra-expanded' oder 'ultra-expanded'. Standard: rcParams["font.stretch"] (Standard: 'normal')

  • weight: Ein numerischer Wert im Bereich 0-1000 oder einer der Werte 'ultralight', 'light', 'normal', 'regular', 'book', 'medium', 'roman', 'semibold', 'demibold', 'demi', 'bold', 'heavy', 'extra bold', 'black'. Standard: rcParams["font.weight"] (Standard: 'normal')

  • size: Entweder ein relativer Wert von 'xx-small', 'x-small', 'small', 'medium', 'large', 'x-large', 'xx-large' oder eine absolute Schriftgröße, z. B. 10. Standard: rcParams["font.size"] (Standard: 10.0)

  • math_fontfamily: Die Familie der Schriftarten, die zum Rendern von mathematischem Text verwendet werden. Unterstützte Werte sind: 'dejavusans', 'dejavuserif', 'cm', 'stix', 'stixsans' und 'custom'. Standard: rcParams["mathtext.fontset"] (Standard: 'dejavusans')

Alternativ kann eine Schriftart über den absoluten Pfad zu einer Schriftartdatei angegeben werden, indem das Schlüsselwortargument fname verwendet wird. In diesem Fall ist es typischerweise einfacher, einfach den Pfad (als pathlib.Path, nicht als str) an das Schlüsselwortargument font des Text-Objekts zu übergeben.

Die bevorzugte Verwendung von Schriftgrößen ist die Verwendung relativer Werte, z. B. 'large', anstelle von absoluten Schriftgrößen, z. B. 12. Dieser Ansatz ermöglicht es, alle Textgrößen basierend auf der Standardschriftgröße des Schriftartmanagers größer oder kleiner zu machen.

Diese Klasse akzeptiert eine einzelne positionale Zeichenkette als fontconfig Muster oder alternativ einzelne Eigenschaften als Schlüsselwortargumente.

FontProperties(pattern)
FontProperties(*, family=None, style=None, variant=None, ...)

Diese Unterstützung hängt nicht von fontconfig ab; wir leihen uns lediglich seine Muster-Syntax für die Verwendung hier.

Beachten Sie, dass Matplotlibs interner Schriftartmanager und fontconfig einen anderen Algorithmus zur Suche nach Schriftarten verwenden, sodass die Ergebnisse desselben Musters in Matplotlib anders sein können als in anderen Anwendungen, die fontconfig verwenden.

copy()[Quelle]#

Gibt eine Kopie von self zurück.

get_family()[Quelle]#

Gibt eine Liste einzelner Schriftartfamiliennamen oder generischer Familiennamen zurück.

Die Schriftartfamilien oder generischen Schriftartfamilien (die während der Suche nach einer passenden Schriftart aus ihren jeweiligen rcParams aufgelöst werden) in der Reihenfolge der Präferenz.

get_file()[Quelle]#

Gibt den Dateinamen der zugehörigen Schriftart zurück.

get_fontconfig_pattern()[Quelle]#

Gibt ein fontconfig Muster zurück, das für die Suche nach der Schriftart geeignet ist, wie sie mit dem Dienstprogramm fc-match von fontconfig angegeben wurde.

Diese Unterstützung hängt nicht von fontconfig ab; wir leihen uns lediglich seine Muster-Syntax für die Verwendung hier.

get_math_fontfamily()[Quelle]#

Gibt den Namen der Schriftartfamilie zurück, die für mathematischen Text verwendet wird.

Die Standardschriftart ist rcParams["mathtext.fontset"] (Standard: 'dejavusans').

get_name()[Quelle]#

Gibt den Namen der Schriftart zurück, die den Schriftarteigenschaften am besten entspricht.

get_size()[Quelle]#

Gibt die Schriftgröße zurück.

get_size_in_points()[Quelle]#

Gibt die Schriftgröße zurück.

get_slant()[Quelle]#

Gibt den Schriftstil zurück. Werte sind: 'normal', 'italic' oder 'oblique'.

get_stretch()[Quelle]#

Gibt die Schriftdehnung oder -breite zurück. Optionen sind: 'ultra-condensed', 'extra-condensed', 'condensed', 'semi-condensed', 'normal', 'semi-expanded', 'expanded', 'extra-expanded', 'ultra-expanded'.

get_style()[Quelle]#

Gibt den Schriftstil zurück. Werte sind: 'normal', 'italic' oder 'oblique'.

get_variant()[Quelle]#

Gibt die Schriftvariante zurück. Werte sind: 'normal' oder 'small-caps'.

get_weight()[Quelle]#

Legt die Schriftstärke fest. Optionen sind: Ein numerischer Wert im Bereich 0-1000 oder einer der Werte 'light', 'normal', 'regular', 'book', 'medium', 'roman', 'semibold', 'demibold', 'demi', 'bold', 'heavy', 'extra bold', 'black'.

set_family(family)[Quelle]#

Ändert die Schriftartfamilie. Kann entweder ein Alias (generischer Name im CSS-Jargon) sein, wie z. B.: 'serif', 'sans-serif', 'cursive', 'fantasy' oder 'monospace', ein echter Schriftname oder eine Liste echter Schriftnamen. Echte Schriftnamen werden nicht unterstützt, wenn rcParams["text.usetex"] (Standard: False) True ist. Standard: rcParams["font.family"] (Standard: ['sans-serif'])

set_file(file)[Quelle]#

Legt den Dateinamen der zu verwendenden Schriftartdatei fest. In diesem Fall werden alle anderen Eigenschaften ignoriert.

set_fontconfig_pattern(pattern)[Quelle]#

Legt die Eigenschaften durch Parsen eines fontconfig Muster fest.

Diese Unterstützung hängt nicht von fontconfig ab; wir leihen uns lediglich seine Muster-Syntax für die Verwendung hier.

set_math_fontfamily(fontfamily)[Quelle]#

Legt die Schriftartfamilie für Text im mathematischen Modus fest.

Wenn nicht explizit gesetzt, wird rcParams["mathtext.fontset"] (Standard: 'dejavusans') verwendet.

Parameter:
fontfamilystr

Der Name der Schriftartfamilie.

Verfügbare Schriftartfamilien sind in der Standard-matplotlibrc-Datei definiert.

set_name(family)[Quelle]#

Ändert die Schriftartfamilie. Kann entweder ein Alias (generischer Name im CSS-Jargon) sein, wie z. B.: 'serif', 'sans-serif', 'cursive', 'fantasy' oder 'monospace', ein echter Schriftname oder eine Liste echter Schriftnamen. Echte Schriftnamen werden nicht unterstützt, wenn rcParams["text.usetex"] (Standard: False) True ist. Standard: rcParams["font.family"] (Standard: ['sans-serif'])

set_size(size)[Quelle]#

Legt die Schriftgröße fest.

Parameter:
Größefloat oder {'xx-klein', 'x-klein', 'klein', 'mittel', 'groß', 'x-groß', 'xx-groß'}, Standard: rcParams["font.size"] (Standard: 10.0)

Wenn ein Float, die Schriftgröße in Punkten. Die String-Werte bezeichnen Größen relativ zur Standard-Schriftgröße.

set_slant(style)[source]#

Setzt den Schrifttyp.

Parameter:
Stil{'normal', 'italic', 'oblique'}, Standard: rcParams["font.style"] (Standard: 'normal')
set_stretch(stretch)[source]#

Setzt die Schriftdehnung oder -breite.

Parameter:
Dehnungint oder {'ultra-condensed', 'extra-condensed', 'condensed', 'semi-condensed', 'normal', 'semi-expanded', 'expanded', 'extra-expanded', 'ultra-expanded'}, Standard: rcParams["font.stretch"] (Standard: 'normal')

Wenn int, muss im Bereich 0-1000 liegen.

set_style(style)[source]#

Setzt den Schrifttyp.

Parameter:
Stil{'normal', 'italic', 'oblique'}, Standard: rcParams["font.style"] (Standard: 'normal')
set_variant(variant)[source]#

Setzt die Schriftvariante.

Parameter:
Variante{'normal', 'small-caps'}, Standard: rcParams["font.variant"] (Standard: 'normal')
set_weight(weight)[source]#

Setzt die Schriftstärke.

Parameter:
Stärkeint oder {'ultralight', 'light', 'normal', 'regular', 'book', 'medium', 'roman', 'semibold', 'demibold', 'demi', 'bold', 'heavy', 'extra bold', 'black'}, Standard: rcParams["font.weight"] (Standard: 'normal')

Wenn int, muss im Bereich 0-1000 liegen.

matplotlib.font_manager.afmFontProperty(fontpath, font)[source]#

Extrahiert Informationen aus einer AFM-Schriftdatei.

Parameter:
fontpathstr

Der Dateiname, der zu font gehört.

fontAFM

Die AFM-Schriftdatei, aus der Informationen extrahiert werden.

Gibt zurück:
FontEntry

Die extrahierten Schrifteigenschaften.

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

Sucht nach Schriften in den angegebenen Pfaden. Wenn keine Pfade angegeben sind, werden Standard-Systempfade sowie die von fontconfig verfolgte Liste von Schriften verwendet, falls fontconfig installiert und verfügbar ist. Standardmäßig wird eine Liste von TrueType-Schriften zurückgegeben, mit AFM-Schriften als Option.

matplotlib.font_manager.findfont(prop, fontext='ttf', directory=None, fallback_to_default=True, rebuild_if_missing=True)[source]#

Finden Sie den Pfad zur Schriftartdatei, die den angegebenen Schriftarteigenschaften am nächsten kommt.

Parameter:
propstr oder FontProperties

Die zu suchenden Schriftarteigenschaften. Dies kann entweder ein FontProperties-Objekt oder eine Zeichenkette sein, die ein fontconfig-Muster definiert.

fontext{'ttf', 'afm'}, Standard: 'ttf'

Die Erweiterung der Schriftartdatei

  • 'ttf': TrueType- und OpenType-Schriftarten (.ttf, .ttc, .otf)

  • 'afm': Adobe Font Metrics (.afm)

directorystr, optional

Wenn angegeben, wird nur in diesem Verzeichnis und seinen Unterverzeichnissen gesucht.

fallback_to_defaultbool

Wenn True, wird auf die Standardschriftartfamilie (normalerweise "DejaVu Sans" oder "Helvetica") zurückgegriffen, wenn die erste Suche fehlschlägt.

rebuild_if_missingbool

Ob der Schriftart-Cache neu aufgebaut und erneut gesucht werden soll, wenn die erste Übereinstimmung auf eine nicht existierende Schriftart zu zeigen scheint (d. h. der Schriftart-Cache enthält veraltete Einträge).

Gibt zurück:
str

Der Dateiname der am besten passenden Schriftart.

Anmerkungen

Dies führt eine Nearest-Neighbor-Suche durch. Jeder Schriftart wird eine Ähnlichkeitsbewertung zu den Ziel-Schriftarteigenschaften zugewiesen. Die erste Schriftart mit der höchsten Bewertung wird zurückgegeben. Wenn keine Übereinstimmungen unterhalb einer bestimmten Schwelle gefunden werden, wird die Standardschriftart (normalerweise DejaVu Sans) zurückgegeben.

Das Ergebnis wird im Cache gespeichert, sodass nachfolgende Suchen keine O(n)-Nearest-Neighbor-Suche durchführen müssen.

Siehe die W3C Cascading Style Sheet, Level 1 Dokumentation für eine Beschreibung des Algorithmus zur Schriftartensuche.

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

Gibt ein ft2font.FT2Font-Objekt zurück, das aus einer Liste von Dateipfaden erstellt wurde.

Parameter:
font_filepathsIterable[str, Path, bytes], str, Path, bytes

Relative oder absolute Pfade zu den zu verwendenden Schriftdateien.

Wenn ein einzelner String, Bytes oder pathlib.Path übergeben wird, wird dieser als Liste mit nur diesem Eintrag behandelt.

Wenn mehr als ein Dateipfad übergeben wird, fällt das zurückgegebene FT2Font-Objekt durch die Schriften in der angegebenen Reihenfolge, um ein benötigtes Glyphen zu finden.

Gibt zurück:
ft2font.FT2Font
matplotlib.font_manager.get_font_names()[source]#

Gibt die Liste der verfügbaren Schriftarten zurück.

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

Gibt eine Liste von Dateierweiterungen zurück, die Synonyme für die gegebene Dateierweiterung fileext sind.

matplotlib.font_manager.is_opentype_cff_font(filename)[source]#

Gibt zurück, ob die gegebene Schriftart eine in einen OpenType-Wrapper eingebettete Postscript Compact Font Format Font ist. Wird von den PostScript- und PDF-Backends verwendet, die diese Schriften nicht unterteilen können.

matplotlib.font_manager.json_dump(data, filename)[source]#

Schreibt FontManager-Daten als JSON in die Datei namens filename.

Siehe auch

json_load

Anmerkungen

Dateipfade, die Kinder des Matplotlib-Datenpfads sind (typischerweise mit Matplotlib gelieferte Schriften), werden relativ zu diesem Datenpfad gespeichert (um über virtuelle Umgebungen hinweg gültig zu bleiben).

Diese Funktion sperrt die Ausgabedatei vorübergehend, um zu verhindern, dass mehrere Prozesse die Ausgaben anderer überschreiben.

matplotlib.font_manager.json_load(filename)[source]#

Lädt einen FontManager aus der JSON-Datei namens filename.

Siehe auch

json_dump
matplotlib.font_manager.list_fonts(directory, extensions)[source]#

Gibt eine rekursiv unter dem Verzeichnis gefundene Liste aller Schriften zurück, die mit einer der Erweiterungen übereinstimmen.

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

Extrahiert Informationen aus einer TrueType-Schriftdatei.

Parameter:
fontFT2Font

Die TrueType-Schriftdatei, aus der Informationen extrahiert werden.

Gibt zurück:
FontEntry

Die extrahierten Schrifteigenschaften.

matplotlib.font_manager.win32FontDirectory()[source]#

Gibt das vom Benutzer angegebene Schriftverzeichnis für Win32 zurück. Dies wird aus dem Registrierungsschlüssel abgerufen.

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

Wenn der Schlüssel nicht gefunden wird, wird %WINDIR%\Fonts zurückgegeben.

matplotlib.font_manager.fontManager[source]#

Die globale Instanz von FontManager.

class matplotlib.font_manager.FontEntry(fname='', name='', style='normal', variant='normal', weight='normal', stretch='normal', size='medium')[source]#

Eine Klasse zum Speichern von Schrifteigenschaften.

Sie wird beim Füllen des Schrift-Lookup-Wörterbuchs verwendet.