2013-05-24 6 views
8

ich durch grundlegenden Tutorials für matplotlib Fuß, und Beispiel-Code, den ich arbeite ist:matplotlib 2d line, = Plot Komma bedeutet

import numpy as np 

import matplotlib.pylab as plt 

x=[1,2,3,4] 
y=[5,6,7,8] 

line, = plt.plot(x,y,'-') 

plt.show() 

Weiß jemand, was das Komma nach Linie (line,=plt.plot(x,y,'-')) bedeutet? Ich dachte, es wäre ein Tippfehler, aber offensichtlich funktioniert der ganze Code nicht, wenn ich das Komma weglasse.

+0

Können Sie eine Antwort bitte akzeptieren? (große graue Checkbox auf der linken Seite) – tacaswell

Antwort

9

plt.plot gibt eine Liste der Line2D Objekte zurück, die geplottet wurden, auch wenn Sie nur eine Zeile zeichnen.

Das Komma entpackt den einzelnen Wert in line.

ex

a, b = [1, 2] 
a, = [1, ] 
4

Die plot Methode gibt Objekte, die Informationen über jede Zeile in der Handlung als Liste enthalten. In Python können Sie die Elemente einer Liste mit einem Komma erweitern. Zum Beispiel, wenn Sie zwei Linien aufgetragen, würden Sie tun:

line1, line2 = plt.plot(x,y,'-',x,z,':') 

Wo line1-x,y entsprechen würde, und line2 entspricht x,z. In Ihrem Beispiel gibt es nur eine Zeile. Sie benötigen also das Komma, um eine 1-Element-Liste zu erweitern. Was haben Sie entspricht

line = plt.plot(x,y,'-')[0] 

oder

line = ply.plot(x,y,'-') 
line = line[0] 

sollte Ihr Code, wenn Sie das Komma weglassen, nur weil Sie nicht line verwenden. In Ihrem einfachen Beispiel würde plt.plot(x,y,'-') ausreichen.

+0

Es gibt eine 'liste' zurück, nicht ein' tuple' – tacaswell

+0

@tcaswell OK, aber es ändert sich nicht die Antwort – SethMMorton

+0

nein, aber es gibt keinen Grund, etwas sachlich falsch zu schreiben. Es kann in anderen Fällen wichtig sein, wenn Sie etwas Zarteres mit der Liste der zurückgegebenen 'Line2D' Objekte machen wollen. – tacaswell

2

Der Rückgabewert der Funktion ist ein Tupel oder eine Liste mit einem Element, und diese Syntax "entpackt" den Wert aus dem Tupel/der Liste in eine einfache Variable.