matplotlib.font_manager#

Ein Modul zum plattformübergreifenden Suchen, Verwalten und Verwenden von Schriftarten.

Dieses Modul stellt eine einzelne FontManagerInstanz bereit fontManager, die von Backends und Plattformen gemeinsam genutzt werden kann. Die findfont Funktion gibt die beste TrueType (TTF)-Schriftartdatei im lokalen oder Systemschriftartpfad zurück, die der angegebenen FontProperties Instanz entspricht. Der FontManagerverarbeitet auch Adobe Font Metrics (AFM)-Schriftartendateien zur Verwendung durch das PostScript-Backend.

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

Klasse matplotlib.font_manager. FontManager ( Größe = None , Gewicht = 'normal' ) [Quelle] #

Basen:object

Beim Import FontManagererstellt die Singleton-Instanz eine Liste mit ttf- und afm-Schriftarten und speichert ihre FontProperties. Das FontManager.findfont Verfahren führt eine Suche nach dem nächsten Nachbarn durch, um die Schriftart zu finden, die der Spezifikation am besten entspricht. Wenn keine ausreichend gute Übereinstimmung gefunden wird, wird die Standardschriftart zurückgegeben.

addfont ( Pfad ) [Quelle] #

Cachen Sie die Eigenschaften der Schriftart unter Pfad , um sie für die FontManager. Die Art der Schriftart wird aus dem Pfad-Suffix abgeleitet.

Parameter :
path str oder path-like
Eigenschaft defaultFont #
findfont ( prop , fontext = 'ttf' , Verzeichnis = None , fallback_to_default = True , rebuild_if_missing = True ) [Quelle] #

Finden Sie eine Schriftart, die den angegebenen Schriftarteigenschaften am ehesten entspricht.

Parameter :
prop str oderFontProperties

Die Schriftarteigenschaften, nach denen gesucht werden soll. Dies kann entweder ein FontPropertiesObjekt oder ein String sein, der ein Fontconfig-Muster definiert .

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

Die Erweiterung der Schriftartdatei:

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

  • „afm“: Adobe Font-Metriken (.afm)

Verzeichnisstr , optional

Falls angegeben, nur dieses Verzeichnis und seine Unterverzeichnisse durchsuchen.

fallback_to_default bool

Bei True wird auf die Standardschriftfamilie (normalerweise „DejaVu Sans“ oder „Helvetica“) zurückgegriffen, wenn die erste Suche fehlschlägt.

rebuild_if_missing bool

Ob der Schriftart-Cache neu erstellt und erneut gesucht werden soll, wenn die erste Übereinstimmung auf eine nicht vorhandene Schriftart zu verweisen scheint (dh der Schriftart-Cache enthält veraltete Einträge).

Rückgaben :
Str

Der Dateiname der am besten passenden Schriftart.

Anmerkungen

Dies führt eine Suche nach dem nächsten Nachbarn durch. Jeder Schriftart wird ein Ähnlichkeitswert zu den Eigenschaften der Zielschriftart zugewiesen. Die erste Schriftart mit der höchsten Punktzahl wird zurückgegeben. Wenn keine Übereinstimmungen unterhalb eines bestimmten Schwellenwerts gefunden werden, wird die Standardschriftart (normalerweise DejaVu Sans) zurückgegeben.

Das Ergebnis wird zwischengespeichert, sodass nachfolgende Suchen nicht die O(n)-Suche nach dem nächsten Nachbarn durchführen müssen.

Siehe die W3C Cascading Style Sheet, Level 1- Dokumentation für eine Beschreibung des Font-Suchalgorithmus.

statisch get_default_size ( ) [Quelle] #

Gibt die Standardschriftgröß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 ( familien , familie2 ) [Quelle] #

Gibt einen Übereinstimmungswert zwischen der Liste der Schriftfamilien in Familien und dem Namen der Schriftfamilie family2 zurück .

Eine exakte Übereinstimmung am Anfang der Liste gibt 0,0 zurück.

Eine Übereinstimmung weiter unten in der Liste wird zwischen 0 und 1 zurückgegeben.

Keine Übereinstimmung gibt 1,0 zurück.

score_size ( size1 , size2 ) [Quelle] #

Gibt einen Match-Score zwischen size1 und size2 zurück .

Wenn size2 (die in der Schriftdatei angegebene Größe) 'skalierbar' ist, gibt diese Funktion immer 0,0 zurück, da jede beliebige Schriftgröße generiert 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 einen Match-Score zwischen stretch1 und stretch2 zurück .

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

score_style ( style1 , style2 ) [Quelle] #

Gibt einen Übereinstimmungswert zwischen style1 und style2 zurück .

Eine exakte Übereinstimmung gibt 0,0 zurück.

Eine Übereinstimmung zwischen „italic“ und „oblique“ gibt 0,1 zurück.

Keine Übereinstimmung gibt 1,0 zurück.

score_variant ( Variante1 , Variante2 ) [Quelle] #

Gibt eine Übereinstimmungsbewertung zwischen Variante1 und Variante2 zurück .

Eine exakte Übereinstimmung gibt 0,0 zurück, andernfalls 1,0.

score_weight ( Gewicht1 , Gewicht2 ) [Quelle] #

Gibt einen Match-Score zwischen weight1 und weight2 zurück .

Das Ergebnis ist 0,0, wenn sowohl Gewicht1 als auch Gewicht 2 als Zeichenfolgen angegeben werden und den gleichen Wert haben.

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

set_default_weight ( Gewicht ) [Quelle] #

Legen Sie die Standardschriftbreite fest. Der Anfangswert ist „normal“.

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

Basen:object

Eine Klasse zum Speichern und Bearbeiten von Schriftarteigenschaften.

Die Schrifteigenschaften sind die sechs Eigenschaften, die im W3C Cascading Style Sheet, Level 1 Font Specification und math_fontfamily für mathematische Schriftarten beschrieben sind:

  • Familie: Eine Liste von Schriftnamen in absteigender Prioritätsreihenfolge. Die Elemente können einen generischen Schriftfamiliennamen enthalten, entweder „Sans-Serif“, „Serif“, „Cursive“, „Fantasy“ oder „Monospace“. In diesem Fall wird während des Suchvorgangs in die tatsächlich zu verwendende Schriftart aus dem zugehörigen rcParam nachgeschlagen findfont. Standard: rcParams["font.family"](Standard: ['sans-serif'])

  • Stil: Entweder 'normal', 'kursiv' oder 'schräg'. Standard: rcParams["font.style"](Standard: 'normal')

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

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

  • Gewicht: Ein numerischer Wert im Bereich 0–1000 oder einer von „ultralight“, „light“, „normal“, „regular“, „book“, „medium“, „roman“, „semibold“, „demibold“, 'halb', 'fett', 'schwer', 'extra fett', 'schwarz'. Standard: rcParams["font.weight"](Standard: 'normal')

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

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

Alternativ kann eine Schriftart unter Verwendung des absoluten Pfads zu einer Schriftartdatei angegeben werden, indem der fname kwarg verwendet wird. In diesem Fall ist es jedoch in der Regel einfacher, den Pfad (als pathlib.Path, nicht als str) an die Schriftart kwarg des TextObjekts zu übergeben.

Die bevorzugte Verwendung von Schriftgrößen besteht darin, die relativen Werte, z. B. „groß“, anstelle absoluter Schriftgrößen, z. B. 12, zu verwenden. Dieser Ansatz ermöglicht es, alle Textgrößen basierend auf der Standardschriftgröße des Schriftartmanagers größer oder kleiner zu machen.

Diese Klasse akzeptiert auch ein fontconfig -Muster , wenn dies das einzige bereitgestellte Argument ist. Diese Unterstützung hängt nicht von fontconfig ab; wir leihen uns hier lediglich seine Mustersyntax aus.

Beachten Sie, dass der interne Font-Manager und Fontconfig von Matplotlib einen anderen Algorithmus zum Suchen von Schriftarten verwenden, sodass die Ergebnisse desselben Musters in Matplotlib anders sein können als in anderen Anwendungen, die Fontconfig verwenden.

kopieren ( ) [Quelle] #

Geben Sie eine Kopie von sich selbst zurück.

get_family ( ) [Quelle] #

Gibt eine Liste individueller Schriftfamiliennamen oder generischer Familiennamen zurück.

Die Schriftfamilien oder generischen Schriftfamilien (die bei der Suche nach einer passenden Schrift aus ihren jeweiligen rcParams aufgelöst werden) in der bevorzugten Reihenfolge.

get_file ( ) [Quelle] #

Gibt den Dateinamen der zugeordneten Schriftart zurück.

get_fontconfig_pattern ( ) [Quelle] #

Holen Sie sich ein Fontconfig -Muster , das zum Suchen der Schriftart geeignet ist, wie mit dem fc-matchDienstprogramm von Fontconfig angegeben.

Diese Unterstützung hängt nicht von fontconfig ab; wir leihen uns hier lediglich seine Mustersyntax aus.

get_math_fontfamily ( ) [Quelle] #

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

Die Standardschrift 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', 'kursiv' oder 'schräg'.

get_stretch ( ) [Quelle] #

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

get_style ( ) [Quelle] #

Gibt den Schriftstil zurück. Werte sind: 'normal', 'kursiv' oder 'schräg'.

get_variant ( ) [Quelle] #

Geben Sie die Schriftartvariante zurück. Werte sind: 'normal' oder 'Small-Caps'.

get_weight ( ) [Quelle] #

Legen Sie die Schriftstärke fest. Optionen sind: Ein numerischer Wert im Bereich 0-1000 oder einer von „light“, „normal“, „regular“, „book“, „medium“, „roman“, „semibold“, „demibold“, „demi“ , 'fett', 'schwer', 'extra fett', 'schwarz'

set_family ( Familie ) [Quelle] #

Ändern Sie die Schriftfamilie. Kann entweder ein Alias ​​sein (allgemeiner Name ist CSS-Jargon), 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. Standard: rcParams["font.family"](Standard: ['sans-serif'])

set_file ( Datei ) [Quelle] #

Legen Sie den Dateinamen der zu verwendenden Schriftdatei fest. In diesem Fall werden alle anderen Eigenschaften ignoriert.

set_fontconfig_pattern ( Muster ) [Quelle] #

Legen Sie die Eigenschaften fest, indem Sie ein Fontconfig -Muster analysieren .

Diese Unterstützung hängt nicht von fontconfig ab; wir leihen uns hier lediglich seine Mustersyntax aus.

set_math_fontfamily ( Schriftfamilie ) [Quelle] #

Stellen Sie die Schriftfamilie für Text im mathematischen Modus ein.

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

Parameter :
Schriftfamilie str

Der Name der Schriftfamilie.

Verfügbare Schriftfamilien sind hier in der Datei matplotlibrc.template definiert

set_name ( Familie ) [Quelle] #

Ändern Sie die Schriftfamilie. Kann entweder ein Alias ​​sein (allgemeiner Name ist CSS-Jargon), 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. Standard: rcParams["font.family"](Standard: ['sans-serif'])

set_size ( Größe ) [Quelle] #

Legen Sie die Schriftgröße fest.

Parameter :
size float oder {'xx-small', 'x-small', 'small', 'medium', 'large', 'x-large', 'xx-large'}, Standard: rcParams["font.size"](Standard: 10.0)

Bei Float die Schriftgröße in Punkten. Die Zeichenfolgenwerte geben Größen relativ zur Standardschriftgröße an.

set_slant ( Stil ) [Quelle] #

Legen Sie den Schriftstil fest.

Parameter :
Stil {'normal', 'kursiv', 'schräg'}, Standard: rcParams["font.style"](Standard: 'normal')
set_stretch ( strecken ) [Quelle] #

Legen Sie die Schriftdehnung oder -breite fest.

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

Wenn int, muss im Bereich 0-1000 liegen.

set_style ( Stil ) [Quelle] #

Legen Sie den Schriftstil fest.

Parameter :
Stil {'normal', 'kursiv', 'schräg'}, Standard: rcParams["font.style"](Standard: 'normal')
set_variant ( Variante ) [Quelle] #

Stellen Sie die Schriftartvariante ein.

Parameter :
Variante {'normal', 'Small-Caps'}, Standard: rcParams["font.variant"](Standard: 'normal')
set_weight ( Gewicht ) [Quelle] #

Legen Sie die Schriftstärke fest.

Parameter :
Gewicht int oder {'ultralight', 'light', 'normal', 'regular', 'book', 'medium', 'roman', 'semibold', 'demibold', 'demi', 'bold', 'heavy ', 'extra fett', 'schwarz'}, Standard: rcParams["font.weight"](Standard: 'normal')

Wenn int, muss im Bereich 0-1000 liegen.

matplotlib.font_manager. afmFontProperty ( Schriftpfad , Schriftart ) [Quelle] #

Informationen aus einer AFM-Schriftartdatei extrahieren.

Parameter :
Schriftart AFM

Die AFM-Schriftartdatei, aus der Informationen extrahiert werden.

Rückgaben :
FontEntry

Die extrahierten Schrifteigenschaften.

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

Suche nach Schriften in den angegebenen Schriftpfaden. Wenn keine Pfade angegeben sind, wird ein Standardsatz von Systempfaden sowie die Liste der Schriftarten verwendet, die von fontconfig verfolgt werden, wenn fontconfig installiert und verfügbar ist. Eine Liste von TrueType-Schriftarten wird standardmäßig mit AFM-Schriftarten als Option zurückgegeben.

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

Finden Sie eine Schriftart, die den angegebenen Schriftarteigenschaften am ehesten entspricht.

Parameter :
prop str oderFontProperties

Die Schriftarteigenschaften, nach denen gesucht werden soll. Dies kann entweder ein FontPropertiesObjekt oder ein String sein, der ein Fontconfig-Muster definiert .

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

Die Erweiterung der Schriftartdatei:

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

  • „afm“: Adobe Font-Metriken (.afm)

Verzeichnisstr , optional

Falls angegeben, nur dieses Verzeichnis und seine Unterverzeichnisse durchsuchen.

fallback_to_default bool

Bei True wird auf die Standardschriftfamilie (normalerweise „DejaVu Sans“ oder „Helvetica“) zurückgegriffen, wenn die erste Suche fehlschlägt.

rebuild_if_missing bool

Ob der Schriftart-Cache neu erstellt und erneut gesucht werden soll, wenn die erste Übereinstimmung auf eine nicht vorhandene Schriftart zu verweisen scheint (dh der Schriftart-Cache enthält veraltete Einträge).

Rückgaben :
Str

Der Dateiname der am besten passenden Schriftart.

Anmerkungen

Dies führt eine Suche nach dem nächsten Nachbarn durch. Jeder Schriftart wird ein Ähnlichkeitswert zu den Eigenschaften der Zielschriftart zugewiesen. Die erste Schriftart mit der höchsten Punktzahl wird zurückgegeben. Wenn keine Übereinstimmungen unterhalb eines bestimmten Schwellenwerts gefunden werden, wird die Standardschriftart (normalerweise DejaVu Sans) zurückgegeben.

Das Ergebnis wird zwischengespeichert, sodass nachfolgende Suchen nicht die O(n)-Suche nach dem nächsten Nachbarn durchführen müssen.

Siehe die W3C Cascading Style Sheet, Level 1- Dokumentation für eine Beschreibung des Font-Suchalgorithmus.

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

Holen Sie sich ein ft2font.FT2FontObjekt mit einer Liste von Dateipfaden.

Parameter :
font_filepaths Iterable[str, Pfad, Bytes], str, Pfad, Bytes

Relative oder absolute Pfade zu den zu verwendenden Schriftdateien.

Wenn es sich um eine einzelne Zeichenfolge, Bytes oder pathlib.Pathhandelt, wird es nur mit diesem Eintrag als Liste behandelt.

Wenn mehr als ein Dateipfad übergeben wird, durchsucht das zurückgegebene FT2Font-Objekt die Schriftarten in der angegebenen Reihenfolge, um eine benötigte Glyphe zu finden.

Rückgaben :
ft2font.FT2Font
matplotlib.font_manager. get_font_names ( ) [Quelle] #

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

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

[ Veraltet ] Listet Schriftdateinamen auf, von denen bekannt ist, fc-listdass sie die angegebene Erweiterung haben.

Anmerkungen

Veraltet seit Version 3.5.

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

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

matplotlib.font_manager. is_opentype_cff_font ( Dateiname ) [Quelle] #

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

matplotlib.font_manager. json_dump ( Daten , Dateiname ) [Quelle] #

Daten als JSON in die Datei mit dem Namen Dateiname ausgeben .FontManager

Siehe auch

json_load

Anmerkungen

Dateipfade, die Kinder des Matplotlib-Datenpfads sind (normalerweise mit Matplotlib gelieferte Schriftarten), werden relativ zu diesem Datenpfad gespeichert (um über virtualenvs hinweg gültig zu bleiben).

Diese Funktion sperrt vorübergehend die Ausgabedatei, um zu verhindern, dass mehrere Prozesse die Ausgabe eines anderen überschreiben.

matplotlib.font_manager. json_load ( Dateiname ) [Quelle] #

Laden Sie eine FontManageraus der JSON-Datei mit dem Namen filename .

Siehe auch

json_dump
matplotlib.font_manager. list_fonts ( Verzeichnis , Erweiterungen ) [Quelle] #

Gibt eine Liste aller Schriftarten zurück, die mit einer der Erweiterungen übereinstimmen, die rekursiv unter dem Verzeichnis gefunden werden.

matplotlib.font_manager. ttfFontProperty ( Schriftart ) [Quelle] #

Informationen aus einer TrueType-Schriftartdatei extrahieren.

Parameter :
SchriftartFT2Font

Die TrueType-Schriftartdatei, aus der Informationen extrahiert werden.

Rückgaben :
FontEntry

Die extrahierten Schrifteigenschaften.

matplotlib.font_manager. win32FontDirectory ( ) [Quelle] #

Gibt das benutzerdefinierte Schriftartenverzeichnis für Win32 zurück. Dies wird aus dem Registrierungsschlüssel nachgeschlagen

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

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

matplotlib.font_manager. win32InstalledFonts ( Verzeichnis = None , Fontext = 'ttf' ) [Quelle] #

[ Veraltet ] Suchen Sie nach Schriftarten im angegebenen Schriftartenverzeichnis oder verwenden Sie die Systemverzeichnisse, falls keine vorhanden sind. Zusätzlich wird nach installierten Benutzerfonts gesucht. Standardmäßig wird eine Liste mit Dateinamen für TrueType-Schriftarten oder AFM-Schriftarten zurückgegeben, wenn fontext == 'afm'.

Anmerkungen

Veraltet seit Version 3.5.

Klasse matplotlib.font_manager. FontEntry ( fname : str = '' , name : str = '' , style : str = 'normal' , variation : str = 'normal' , weight : str = 'normal' , stretch : str = 'normal' , size : str = 'mittel' ) #

Eine Klasse zum Speichern von Font-Eigenschaften.

Es wird verwendet, wenn das Font-Lookup-Wörterbuch gefüllt wird.