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:
objectBeim Import erstellt die Singleton-Instanz
FontManagereine Liste von ttf- und afm-Schriftarten und speichert derenFontPropertiesim Cache. Die MethodeFontManager.findfontfü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.addfonthinzugefügt wurden, bleiben nicht im Cache erhalten; daher mussaddfontjedes 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.addfontmuss auf der globalenFontManager-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
FontManagerzur 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
FontManagerbietet 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).
- propstr oder
- 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.
- 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.
- class matplotlib.font_manager.FontProperties(family=None, style=None, variant=None, weight=None, stretch=None, size=None, fname=None, math_fontfamily=None)[Quelle]#
Bases:
objectEine 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
findfontanhand 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 alsstr) an das Schlüsselwortargument font desText-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.
- 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_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-matchvon 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_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_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)Trueist. 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.
Siehe auch
- 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)Trueist. 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.
- Größefloat oder {'xx-klein', 'x-klein', 'klein', 'mittel', 'groß', 'x-groß', 'xx-groß'}, Standard:
- set_slant(style)[source]#
Setzt den Schrifttyp.
- Parameter:
- Stil{'normal', 'italic', 'oblique'}, Standard:
rcParams["font.style"](Standard:'normal')
- Stil{'normal', 'italic', 'oblique'}, Standard:
- 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.
- Dehnungint oder {'ultra-condensed', 'extra-condensed', 'condensed', 'semi-condensed', 'normal', 'semi-expanded', 'expanded', 'extra-expanded', 'ultra-expanded'}, Standard:
- set_style(style)[source]#
Setzt den Schrifttyp.
- Parameter:
- Stil{'normal', 'italic', 'oblique'}, Standard:
rcParams["font.style"](Standard:'normal')
- Stil{'normal', 'italic', 'oblique'}, Standard:
- set_variant(variant)[source]#
Setzt die Schriftvariante.
- Parameter:
- Variante{'normal', 'small-caps'}, Standard:
rcParams["font.variant"](Standard:'normal')
- Variante{'normal', 'small-caps'}, Standard:
- 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.
- Stärkeint oder {'ultralight', 'light', 'normal', 'regular', 'book', 'medium', 'roman', 'semibold', 'demibold', 'demi', 'bold', 'heavy', 'extra bold', 'black'}, Standard:
- 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:
FontEntryDie 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).
- propstr oder
- 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:
- 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
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
FontManageraus der JSON-Datei namens filename.Siehe auch
- 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.
- 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%\Fontszurückgegeben.
- matplotlib.font_manager.fontManager[source]#
Die globale Instanz von
FontManager.