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: 13927
- 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]: 42
Code: Alles auswählen
In [62]: line = xs[0]
In [63]: line
Out[63]: 42
“Java is a DSL to transform big Xml documents into long exception stack traces.”
— Scott Bellware
— Scott Bellware
@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()