Wie ändert man die Schriftgröße für alle Elemente (Häkchen, Beschriftungen, Titel) in einem Matplotlib-Plot?
Ich weiß, wie man die Größe der Häkchen ändert. Dies geschieht mit:
import matplotlib
matplotlib.rc('xtick', labelsize=20)
matplotlib.rc('ytick', labelsize=20)
Aber wie ändert man den Rest?
python
matplotlib
font-size
Herman Schaaf
quelle
quelle
'family'
,'weight'
usw.?'family'
wie'normal'
,'sans-serif'
etc.import matplotlib.pyplot as plt
, können Sie gerne darauf hinweisen , dasspyplot
hatrc
auch. Sie können daraufplt.rc(...
verzichten, Ihre Importe ändern zu müssen.Wenn Sie ein Kontrollfreak wie ich sind, möchten Sie möglicherweise alle Ihre Schriftgrößen explizit festlegen:
Beachten Sie, dass Sie auch die Größen festlegen können, für die die
rc
Methode aufgerufen wirdmatplotlib
:quelle
plt.rc('axes', titlesize=BIGGER_SIZE)
plt.rc('axes', titlesize=SMALL_SIZE, labelsize=MEDIUM_SIZE)
quelle
Wenn Sie die Schriftgröße nur für ein bestimmtes Diagramm ändern möchten, das bereits erstellt wurde, versuchen Sie Folgendes:
quelle
ax=plt.gca()
wenn das Diagramm erstellt wurde, ohne eine Achse zu definieren.ax.get_legend().get_texts()
, daax.legend()
die gesamte Legende mit Standardparametern neu gezeichnet wird, zusätzlich zur Rückgabe des Werts vonax.get_legend()
.Update: Eine etwas bessere Vorgehensweise finden Sie am Ende der Antwort.
Update Nr. 2: Ich habe herausgefunden, dass sich auch die Schriftarten für Legendentitel ändern.
Update Nr. 3: In Matplotlib 2.0.0 ist ein Fehler aufgetreten , der dazu führt, dass die Tick-Beschriftungen für logarithmische Achsen auf die Standardschrift zurückgesetzt werden. Sollte in 2.0.1 behoben sein, aber ich habe die Problemumgehung in den 2. Teil der Antwort aufgenommen.
Diese Antwort richtet sich an alle, die versuchen, alle Schriftarten zu ändern, einschließlich der Legende, und an alle, die versuchen, für jede Sache unterschiedliche Schriftarten und Größen zu verwenden. Es wird kein RC verwendet (was bei mir nicht zu funktionieren scheint). Es ist ziemlich umständlich, aber ich konnte mich mit keiner anderen Methode persönlich auseinandersetzen. Grundsätzlich kombiniert es Ryggyrs Antwort hier mit anderen Antworten auf SO.
Der Vorteil dieser Methode besteht darin, dass Sie durch mehrere Schriftwörterbücher verschiedene Schriftarten / Größen / Gewichte / Farben für die verschiedenen Titel auswählen, die Schriftart für die Häkchenbeschriftungen und die Schriftart für die Legende unabhängig voneinander auswählen können.
AKTUALISIEREN:
Ich habe einen etwas anderen, weniger überfüllten Ansatz entwickelt, der Schriftwörterbücher überflüssig macht und jede Schriftart auf Ihrem System zulässt, sogar .otf-Schriftarten. Um separate Schriftarten für jede Sache zu haben, schreiben Sie einfach mehr
font_path
undfont_prop
ähnliche Variablen.Hoffentlich ist dies eine umfassende Antwort
quelle
Hier ist ein völlig anderer Ansatz, der überraschend gut funktioniert, um die Schriftgrößen zu ändern:
Ändern Sie die Figurengröße !
Normalerweise verwende ich Code wie folgt:
Je kleiner Sie die Figurengröße machen, desto größer ist die Schrift relativ zum Plot . Dadurch werden auch die Markierungen hochskaliert. Hinweis Ich habe auch den
dpi
oder Punkt pro Zoll eingestellt. Ich habe dies aus einem Beitrag im AMTA-Forum (American Modeling Teacher of America) gelernt. Beispiel aus dem obigen Code:quelle
bbox_inches
Argumentfig.savefig('Basic.png', bbox_inches="tight")
Verwenden
plt.tick_params(labelsize=14)
quelle
Sie können verwendet werden
plt.rcParams["font.size"]
für die Einstellungfont_size
inmatplotlib
Sie können auch verwendet werdenplt.rcParams["font.family"]
für die Einstellungfont_family
inmatplotlib
. Versuchen Sie dieses Beispiel:quelle
Folgendes verwende ich normalerweise in Jupyter Notebook:
quelle
Basierend auf den oben genannten Dingen:
quelle
Dies ist eine Erweiterung der Antwort von Marius Retegan . Sie können mit all Ihren Änderungen eine separate JSON-Datei erstellen und diese dann mit rcParams.update laden. Die Änderungen gelten nur für das aktuelle Skript. Damit
und speichern Sie diese 'example_file.json' im selben Ordner.
quelle
Ich stimme Prof. Huster voll und ganz zu, dass der einfachste Weg darin besteht, die Größe der Abbildung zu ändern, wodurch die Standardschriftarten beibehalten werden können. Ich musste dies nur mit einer Option bbox_inches ergänzen, wenn ich die Figur als PDF speicherte, da die Achsenbeschriftungen geschnitten wurden.
quelle