Hallo,
ich habe hier https://riptutorial.com/de/matplotlib/e ... darstellen
ein Beispiel gefunden in dem 2x line, vorkommt.
Was hat es da mit dem Komma auf sich?
MfG
            
			
									
						
										
						matplot: Variable mit Komma
- __blackjack__
 - User
 - Beiträge: 14211
 - Registriert: Samstag 2. Juni 2018, 10:21
 - Wohnort: 127.0.0.1
 - Kontaktdaten:
 
@caargoo: Damit steht links von der Zuweisung nicht ein einzelner Name sondern ein Tupel mit einem einzelnen Namen.  Und da passiert dann ”tuple unpacking”:
Ich persönlich finde es ja ein bisschen kryptisch das so zu schreiben und fände das hier lesbarer:
            
			
									
						
							Code: Alles auswählen
In [57]: xs = [42]                                                              
In [58]: line = xs                                                              
In [59]: line                                                                   
Out[59]: [42]
In [60]: line, = xs                                                             
In [61]: line                                                                   
Out[61]: 42Code: Alles auswählen
In [62]: line = xs[0]                                                           
In [63]: line                                                                   
Out[63]: 42“Ich bin für die Todesstrafe.  Wer schreckliche Dinge getan hat, muss eine angemessene Strafe bekommen.  So lernt er seine Lektion für das nächste Mal.” — Britney Spears, Interview in der französischen Zeitung Libération, 2. April 2002
			
						@caargoo: das Beispiel ist hat einige Fehler. `as` bei import ist dazu da etwas umzubenennen, animation wird aber gar nicht umbenannt. Dateien öffnet man nicht irgendwo, und verwendet sie irgendwo anders, sondern das sollte alles innerhalb eines with-Blocks stattfinden.
`datalist` wird initialisiert, dann beim plot aber gar nicht benutzt. Dann werden mittendrin einfach Funktionen definiert, die viele globale Variablen verwenden. `eval` darf man auf keinen Fall verwenden, zumal hier ein einfaches float ausreichend ist. Statt readline sollte man die Datei mit einer for-Schleife lesen.
            
			
									
						
										
						`datalist` wird initialisiert, dann beim plot aber gar nicht benutzt. Dann werden mittendrin einfach Funktionen definiert, die viele globale Variablen verwenden. `eval` darf man auf keinen Fall verwenden, zumal hier ein einfaches float ausreichend ist. Statt readline sollte man die Datei mit einer for-Schleife lesen.
Code: Alles auswählen
import collections
import matplotlib
import matplotlib.pyplot as plt
from matplotlib import animation
def update(data, plots):
    plots.set_ydata(data)
    return plots
def data_gen(data, filename):
    with open(filename) as lines:
        for line in lines:
            data.append(float(line))
            yield data
def main():
    #configure the graph itself
    filename = "pipe"
    amount = 1000
    data = collections.deque([0] * amount, amount)
    fig, ax = plt.subplots()
    plots = ax.plot(data)
    ax.set_ylim(0, 256)
    ani = animation.FuncAnimation(fig, update, data_gen(data, filename), fargs=(plots,), interval=10, blit=True)
    plt.show()
if __name__ == '__main__':
    main()