Einfache Frage hier: Ich versuche, die Größe meiner Legende matplotlib.pyplot
kleiner zu machen (dh den Text kleiner zu machen). Der Code, den ich verwende, sieht ungefähr so aus:
plot.figure()
plot.scatter(k, sum_cf, color='black', label='Sum of Cause Fractions')
plot.scatter(k, data[:, 0], color='b', label='Dis 1: cf = .6, var = .2')
plot.scatter(k, data[:, 1], color='r', label='Dis 2: cf = .2, var = .1')
plot.scatter(k, data[:, 2], color='g', label='Dis 3: cf = .1, var = .01')
plot.legend(loc=2)
python
size
matplotlib
legend
Mike
quelle
quelle
plot.rcParams.update
?Das sollte reichen
Dann machen Sie die Handlung danach.
Es gibt eine Menge anderer rcParams, sie können auch in der matplotlibrc-Datei festgelegt werden.
Vermutlich können Sie es auch ändern, indem Sie eine
matplotlib.font_manager.FontProperties
Instanz übergeben, aber das weiß ich nicht. -> siehe Yanns Antwort.quelle
matplotlib.rc('legend', fontsize=0.5, linewidth=2)
legend.handlelength
statt seinlegend.linewidth
mit
import matplotlib.pyplot as plt
Methode 1: Geben Sie die Schriftgröße an, wenn Sie die Legende aufrufen (repetitiv).
Mit dieser Methode können Sie die Schriftgröße für jede Legende bei der Erstellung festlegen (sodass Sie mehrere Legenden mit unterschiedlichen Schriftgrößen haben können). Sie müssen jedoch jedes Mal, wenn Sie eine Legende erstellen, alles manuell eingeben.
(Hinweis: @ Mathias711 hat die verfügbaren benannten Schriftgrößen in seiner Antwort aufgelistet.)
Methode 2: Geben Sie die Schriftgröße in rcParams an (praktisch)
Mit dieser Methode legen Sie die Standardschriftgröße für Legenden fest, und alle Legenden verwenden diese automatisch, sofern Sie mit Methode 1 nichts anderes angeben. Dies bedeutet, dass Sie die Schriftgröße für Legenden am Anfang Ihres Codes festlegen können, ohne sich um die Einstellung für jede einzelne Legende kümmern zu müssen .
Wenn Sie z. B. eine benannte Größe verwenden
'medium'
, wird der Legendentext mit dem globalenfont.size
In skaliertrcParams
.font.size
Verwendung ändernplt.rc(font.size='medium')
quelle
Es gibt auch ein paar Namen Schriftgrößen , abgesehen von der Größe in Punkten:
Verwendungszweck:
quelle
Es gibt mehrere Einstellungen zum Anpassen der Legendengröße. Die beiden, die ich am nützlichsten finde, sind:
legend(..., labelspacing=0.2)
Reduziert beispielsweise bei einer 10-Punkt-Schriftart den Abstand zwischen Einträgen auf 2 Punkte. Die Standardeinstellung bei meiner Installation ist ungefähr 0,5.legend(..., prop={'size':8})
. Die Standardeinstellung bei meiner Installation ist ungefähr 14 Punkte.Darüber hinaus ist die Legende Dokumentation listet eine Reihe anderer Polsterung und Abstandsparametern einschließlich:
borderpad
,handlelength
,handletextpad
,borderaxespad
, undcolumnspacing
. Diese folgen alle der gleichen Form wie Etikettenabstand und Fläche, auch in Vielfachen der Schriftgröße.Diese Werte können auch als Standardeinstellungen für alle Abbildungen mithilfe der Datei matplotlibrc festgelegt werden .
quelle
Bei meiner Installation ändert FontProperties nur die Textgröße, aber sie ist immer noch zu groß und zu weit auseinander. Ich habe in
pyplot.rcParams
: einen Parameter gefundenlegend.labelspacing
, der vermutlich auf einen Bruchteil der Schriftgröße eingestellt ist. Ich habe es mit geändertIch bin nicht sicher, wie ich es für die Funktion pyplot.legend angeben soll - Übergabe
oder
kommt mit einem Fehler zurück.
quelle
plot.legend (loc = 'unten rechts', decimal_places = 2, fontsize = '11', title = 'Hey there', title_fontsize = '20')
quelle