Sch

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
MacBlue
User
Beiträge: 4
Registriert: Samstag 5. Juni 2010, 08:06

Hallo,

ich habe in pythonxy einen Graphen mit einer Legende erstellt und möchte die Schriftgröße der Legende modifizieren. Das habe ich folgendermaßen versucht:

plt.legend(['Text1', 'Text2', 'Text3'], loc='upper right', shadow=True, fontsize=8)

Es geht um den unterstrichenen Bereich. Wieso funktioniert das auf diese Art nicht? Wenn ich bspw. die linewidth eines Linienplots einstellen möchte, gehe ich ja analog vor:

plt.plot([0.05, 0.4], [0.35, 0.35], 'r-', linewidth=1.5)

Ich bin davon ausgegangen, dass man generell so die Eigenschaften eines Objekts verändern kann. Wo ist denn da der Unterschied?

Gruß
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Hallo,

magst Du vielleicht demnächst etwas vielsagendere Titel verwenden? Und wir haben auch einen Python-Code Tag.
MacBlue hat geschrieben:pythonxy
Das sagt mir auch nichts, aber ich gehe mal davon aus, daß Du matplotlib meinst.

Also der Unterschied besteht darin, daß die Schriftgröße eine Eigenschaft des Textes und die Liniendicke eine des Plots ist.

Du hast verschiedene Möglichkeiten:
- das matplotlibrc-File editieren (Eintrag 'legend.fontsize')
- oder dieselben Settings im Skript editieren, z. B.

Code: Alles auswählen

from matplotlib import rc
rc('legend', fontsize = 16) # bzw. ein anderer Wert
(interessant ist in diesem Zusammenhang das Cookbook)
- oder ganz interaktiv:

Code: Alles auswählen

import pylab
pylab.plot([1,2,3])
pylab.legend(['asdf'])
legend = pylab.gca().get_legend()
pylab.setp(legend.get_texts()), fontsize = 'small')
Was das Letzte bedeutet? Siehe mpl-Doku, gca() gibt die aktuelle Axis-Instanz zurück.

Analog dazu kann man auch in OO-Umgebung arbeiten.

Gruß,
Christian
MacBlue
User
Beiträge: 4
Registriert: Samstag 5. Juni 2010, 08:06

Danke Christian,

erst einmal eine Entschuldigung für den Titel, das war keine Absicht.

Ich meine tatsächlich matplotlib, was ein Bestandteil von Pythonxy ist. Pythonxy wiederum ist ein Paket / eine Art Standardzusammenstellung von Bibliotheken. Um in Zukunft Missverständnisse zu vermeiden, werde ich mich dann auf direkt auf die Bibliothek beziehen.

Gruß

Markus
Antworten