Editor, Plot (matplotlib) und Codefrage

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
Sirius
User
Beiträge: 5
Registriert: Montag 19. Oktober 2009, 14:07

Hallo, ich habe ein paar einfache?? Fragen :-)

1. was ist besser, bzw wo liegen die Unterschiede:

Code: Alles auswählen

i=1
a=str(i)
figname='fig%s.eps' % (a)
figure='fig'+a+'.eps'
Das ganze natürlich in einem beliebigen loop

2.
Gibts eine Möglichkeit um in einem loop bei jedeme Durchgang einen Plot darzustellen?
Was ich bis jetzt gelesen habe geht das nicht und man kann die Grafik nur abspeichern. Wäre aber trotzdem toll, wenn das ginge ;-) Gibts da was wovon ich noch nichts weiss?

3.
Gibts eigentlich einen editor, wo man die Einzüge automatisch machen lassen kann? In Matlab gibts ja zB sowas wo man einfach schön den Text markiert, dann rechtsklick: "Smart indent" und dann passt alles. Ich nehme aber mal an das geht nicht in python, da man ja das Ende einer Schlaufe nicht markiert... schade ;-) Ich weiss, gibt vor und nachteile, dass das in python so is...

Vielen Dank für eure Hilfe!
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Hallo und willkommen im Forum,

ad 1. Das ist ein bißchen Geschmackssache, allerdings:

Code: Alles auswählen

'fig%d.eps' % (a)
, dann mußt Du nicht str() aufrufen. Und Stringformatting ist allemal üblicher als Stringconcatenation (, wenn ich das mal so eindeutschen darf ;-). )

ad 2. Ja, wo liegt denn Dein Problem?

ad 3. http://wiki.python.org/moin/PythonEditors zeigt einen Haufen Editoren. Allerdings gehört in Python die Einrückung zur Syntax, folglich gibt es keinen Editor der die Einrückung raten kann - außer vielleicht Emacs (Vorsicht: Nicht ernst gemeint!). ;-)

Gruß,
Christian
Sirius
User
Beiträge: 5
Registriert: Montag 19. Oktober 2009, 14:07

zu 1.
oups, ja ist ja eigentlich klar...

zu 2.
Nun, wenn ich in einer Schlaufe einen Plot darstelle, läuft das Programm nicht weiter.

Einfaches Beispiel:

Code: Alles auswählen

#!/usr/bin/env python	
# Beispiel 1: Plot der Sinusfunktion
import pylab as p		# Import des Moduls pylab und Umbenennung zu p
x = p.arange(0,7,0.01)	# 
y = p.sin(x)            # Berechnung der y-Werte als Funktion von x
for i in range(10):
    p.plot(x,y)			# Erzeugung des Plots (im Speicher)
    
    print i
    p.show()	
Er plottet die Funktion nur einmal. In Realität möchte ich dann natürlich schon mit jedem Durchlauf was neues darstellen.


Edit: Ah okay, hab gemerkt, dass wenn ich den Plot schliesse, die Schlaufe weiterläuft. Jetz sollte das ganze nur noch automatisiert sein... also paar Sekunden bild sehen, Schlaufe läuft weiter... mal schaun.
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Ok, kannst ja rumprobieren und Dich melden wenn Du Schwierigkeiten hast. Ein Tipp noch: Schau mal in die Beispiele zum Thema Animation.
ms4py
User
Beiträge: 1178
Registriert: Montag 19. Januar 2009, 09:37

Sirius hat geschrieben: Edit: Ah okay, hab gemerkt, dass wenn ich den Plot schliesse, die Schlaufe weiterläuft. Jetz sollte das ganze nur noch automatisiert sein... also paar Sekunden bild sehen, Schlaufe läuft weiter... mal schaun.
Dazu musst du matplotlib im interaktiven Modus starten

Code: Alles auswählen

matplotlib.interactive(True)
Und je nach Backend dann mit dem FigureManager ein paar Sachen anstellen

Code: Alles auswählen

matplotlib.pyplot.get_current_fig_manager()
Antworten