line, = plot(x,sin(x)) what does comma stand for?
matplotlib, numpy, python
Solution
The comma is Python syntax that denotes either a single-element tuple. E.g.,
>>> tuple([1])
(1,)
In this case, it is used for argument unpacking: `plot` returns a single-element list, which is unpacked into `line`:
>>> x, y = [1, 2]
>>> x
1
>>> y
2
>>> z, = [3]
>>> z
3
An alternative, perhaps more readable way of doing this is to use list-like syntax:
>>> [z] = [4]
>>> z
4
though the `z, =` is more common in Python code.
Problem
I'm trying to make an animated plot. Here is an example code: ``` from pylab import * import time ion() tstart = time.time() # for profiling x = arange(0,2*pi,0.01) # x-array line, = plot(x,sin(x)) for i in arange(1,200): line.set_ydata(sin(x+i/10.0)) # update the data draw() # redraw the canvas print 'FPS:' , 200/(time.time()-tstart) ``` I don't understand the `line,`. Without comma, the code doesn't work.