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: 14328
- 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„Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.“ — Brian W. Kernighan
@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()