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.

Advertisement

6 thoughts on “A small discovery

  1. gioby says:

    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. mattions says:

    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. gioby says:

    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. gioby says:

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

    cheers!!

    • mattions says:

      Sorry dude, nothing ready to share.

      • gioby says:

        Thanks anyway, here it is the talk:
        - http://bioinfoblog.it/?p=14

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s