Wie kann ich in einer Matplotlib-Figur die Schriftgröße für die Tick-Labels ax1.set_xticklabels()
kleiner machen?
Wie kann man es außerdem von horizontal nach vertikal drehen?
python
matplotlib
Mach den Weg frei
quelle
quelle
Antworten:
Bitte beachten Sie, dass neuere Versionen von MPL eine Verknüpfung für diese Aufgabe haben. Ein Beispiel finden Sie in der anderen Antwort auf diese Frage: https://stackoverflow.com/a/11386056/42346
Der folgende Code dient nur zur Veranschaulichung und muss nicht unbedingt optimiert werden.
quelle
plt.setp
. (Schauen Sie sich auch anax.tick_params
) Zum Beispiel können Sie einfach tunplt.setp(ax.get_xticklabels(), rotation='vertical', fontsize=14)
. Außerdem verfügen Achsenobjekte über eineax.is_last_row()
Methode, die in Fällen wie Ihrem Beispiel nützlich sein kann. Stattdessenif i != len...
können Sie tunif not ax.is_last_row()
. (Warum es eine Methode ist, ich habe keine Ahnung ... Matplotlib hasst anscheinend Eigenschaften!)is_last_row()
, danke! Ich habeplt.setp
in der Vergangenheit verwendet und war mir nicht unbedingt sicher, ob dies eine kanonischere Methode zum Anpassen von Tick-Labels darstellt. Sie haben diesen Zweifel beseitigt, danke. Allgemeiner: Ihre Antworten, insbesondere immatplotlib
Tag, lassen mich häufig beeindrucken. Mach weiter so.plt.setp
ist ein "Matlab-Ismus", und eine explizite Schleife ist wahrscheinlich viel pythonischer. Als Matlab-Konvertitsetp
fühle ich mich natürlich, aber für jeden das Richtige. Beide sind gut lesbar, imoax.tick_params(axis='x', labelsize=8)
get_ticklabels
nicht seinget_major_ticks
Es gibt tatsächlich einen einfacheren Weg. Ich habe gerade gefunden:
Dies entspricht jedoch nur der Größe eines
label
Teils Ihrer Frage.quelle
axis = 'x'
oderaxis = 'y'
, um nur eine der Achsen zu ändernVersuchen Sie Folgendes, um sowohl die Schriftgröße als auch die Drehung gleichzeitig festzulegen:
quelle
Alternativ können Sie einfach Folgendes tun:
quelle
quelle
ax.xaxis.set_tick_params(labelsize=20)
Eine andere Alternative
Ich habe zwei Diagramme nebeneinander und möchte die Tick-Labels separat anpassen.
Die oben genannten Lösungen waren nah, aber sie haben für mich nicht funktioniert. Ich habe meine Lösung auf dieser matplotlib- Seite gefunden .
Dies hat den Trick gemacht und war direkt auf den Punkt. Für meinen Anwendungsfall musste das Diagramm auf der rechten Seite angepasst werden. Für das Grundstück auf der linken Seite , da ich neue Strichbeschriftungen war die Schaffung konnte ich die Schrift im gleichen Prozess einzustellen , wie Satz die Etiketten ing.
dh
also habe ich für die richtige Handlung verwendet,
Eine kleine Subtilität ... ich weiß ... aber ich hoffe das hilft jemandem :)
Bonuspunkte, wenn jemand weiß, wie die Schriftgröße der Beschriftung in der Größenordnung angepasst werden kann.
quelle
In aktuellen Versionen von Matplotlib können Sie dies tun
axis.set_xticklabels(labels, fontsize='small')
.quelle
labels
. Es ist besser, wenn wir nur die Schriftgröße ändern können.Sie können auch Beschriftungsanzeigeparameter wie die Schriftgröße mit einer Zeile wie der folgenden ändern:
quelle
Für kleinere Schriftarten verwende ich
ax1.set_xticklabels(xticklabels, fontsize=7)
und es funktioniert!
quelle
Folgendes hat bei mir funktioniert:
Der Vorteil der oben wird Sie nicht die zur Verfügung stellen muß
array
vonlabels
und Arbeiten mit beliebigen Daten auf demaxes
.quelle