Matplotlib graph appearing as a Python list type
Question: The following code produces a graph:

    
    
    import matplotlib
    gr = matplotlib.pyplot.plot([1,2,3])
    

![enter image description here](http://i.stack.imgur.com/YyRMv.png)

Now, if I check the type of this seemingly graph object:

    
    
    type(gr)
    

The output is:

    
    
    list
    

I was expecting it to be some sort of matplotlib graph object, but this comes
to be a native Python list. Can anyone explain why?


Answer: Well what is returned is a list of the lines that are plotted not the graph
object itself, see the
[docs](http://matplotlib.org/api/pyplot_api.html?highlight=.plot#matplotlib.pyplot.plot)

> Return value is a list of lines that were added.

in my case I see this as the object:

    
    
    [<matplotlib.lines.Line2D at 0xb2f83c8>]
    

the type is a `list` and the contents are a `Line2D` object:

    
    
    In [141]:
    
    for e in l:
        print(e)
    Line2D(_line0)
    

The contents of the `Line2D` are the lines added to the plot:

    
    
    In [146]:
    
    l[0].get_data()
    Out[146]:
    (array([ 0.,  1.,  2.]), array([1, 2, 3]))
    

**EDIT**

If you want to access the `Figure` for saving, I personally write like this:

    
    
    import matplotlib.pyplot as plt
    plt.plot([1,2,3])
    plt.Figure() #  do something with Figure here
    

