A small discovery

I just discovered that in using pylab you can plot an array or list of number vs the list lenght by default.

Let’s say we have a list of point like [2,2,3,4,5,5,6,10, 23,45,58,42,12]
points = [2,2,3,4,5,5,6,10,23,45,58,42,12]
well to plot this you just have to
pylab.plot(points)

and this is the results:

pylab example

pylab example

The whole script in python
import pylab
points = [2,2,3,4,5,5,6,10,23,45,58,42,12]
pylab.plot(points)
pylab.show()

The last one is needed to show the window, which will happen automatically if you are running the script using ipython with the pylab option.

I just discovered by chance. I always thought that to plot you need x and y, but of course it’s possible to infer the x if you just one to plot only the points, cause each point in the list has a “Cartesian coordinates” embedded, i.e. [0,2];[1,2];[2,3];[3,4];… etc.

6 Comments

  1. Nice, I didn’t know of this trick.

    Which one do you prefer between R and pylab, to create plots?
    While pylab has many options to produce nice graphics and it is easier to do a lot of things with python, I prefer the ggplot2 library from R, because with pylab it takes too much time to produce fancy plots.

  2. Well, I don’t use R and I’m quite ok with pylab. It does the job :).

    It’s a little bit tricky at the beginning 🙂

  3. One thing I really dislike of matplotlib is that you can’t plot an array of strings directly:

    >>> plot(array(‘h o l a’.split())
    ValueError

    Instead, you have to plot on range(len(<array_of_strings)) and then assign yticks labels manually.

  4. Hi, I am write a short 15 minutes talk on pylab. Do you have any idea, or suggestions?

    cheers!!

Leave a Reply

By continuing to use the site (scrolling or clicking counts), you agree to the use of cookies. more information

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close