Verständnisfrage zur matplotlib

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
reyungoo
User
Beiträge: 9
Registriert: Samstag 22. August 2009, 10:13

Hallo Forum,
wenn ich die Farbe des figure-Hintergrundes bei meinen Plots ändern möchte, kann
ich das z.B. so machen:

Code: Alles auswählen

fig = plt.figure() #plt.figure creates a matplotlib.figure.Figure instance
rect = fig.patch # a rectangle instance
rect.set_facecolor('green')]
plt.show()
oder ich mache das gleich mit dem kwarg facecolor=' ' in plt.figure()

aber sollte es nicht auch so gehen:

Code: Alles auswählen

from matplotlib.figure import Figure
fig = Figure(figsize=(5,5), edgecolor='red', bla bla)
rect = fig.patch 
rect.set_facecolor('green')
plt.show()
Geht aber nicht. Es poppt kein grünes Fenster auf, aber es gibt auch keine Fehlermeldung. Irgendwas hab ich wohl noch nicht verstanden. Ihr könnt
sicher helfen.

beste Grüße
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Hinweis: Was hat - im zweiten Beispiel - 'plt' mit 'fig' zu tun? Bzw. was 'rect' mit 'plt'? Na? ;-)
reyungoo
User
Beiträge: 9
Registriert: Samstag 22. August 2009, 10:13

Was hat - im zweiten Beispiel - 'plt' mit 'fig' zu tun? Bzw. was 'rect' mit 'plt'?
Ich weiß ja nicht einmal was -im ersten Beispiel- 'plt' mit 'fig' zu tun hat.

Ich verstehe deinen Hinweis nicht.
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Ok. Im ersten Fall ist 'fig' eine Instanz von 'plt.figure', 'rect' eine "Sub"-Instanz von 'fig'. 'plt' "weiß" daher was 'fig' ist und 'fig' was 'rect' ist. Klar soweit?

Im zweiten Beispiel ist 'fig' eine Instanz von 'matplotlib.figure.Figure' - und das macht den Unterschied. Üblicherweise kann man diese Instanz z.B. in eine 'Canvas'-Instanz eines GUI-Toolkits setzen und so anzeigen. Dafür ist es ursprünglich mal gemacht worden: pylab als prozedurales und matplotlib als OO interface. Außerdem hast Du mit dem OO interface eine detailliertere Kontrolle - mußt aber dafür auch mehr Code schreiben.

HTH
Christian
reyungoo
User
Beiträge: 9
Registriert: Samstag 22. August 2009, 10:13

Danke CM,
ich willl nicht behaupten, dass ich es verstanden habe, aber ich erahne was du mir sagen willst. Ich werde mich weiter reinarbeiten.
Antworten