Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Multiple grids on matplotlib

I'm making plots in Python and matplotlib, which I found huge and flexible, till now.

The only thing I couldn't find how to do, is to make my plot have multiple grids. I've looked into the documentation, but that's just for line style...

I'm thinking on something like two plots each one with a different grid, which will overlap them.

So, for example I want to make this graph:

Alt text http://img137.imageshack.us/img137/2017/waittimeprobability.png

Have a similar grid marks as this one:

Alt text http://img137.imageshack.us/img137/6122/saucelabssauceloadday.png

And by that, I mean, more frequent grids with lighter color between important points.

like image 290
Santi Avatar asked Nov 13 '09 15:11

Santi


People also ask

How do I create a subplot grid?

There is no built-in option to create inter-subplot grids. In this case I'd say an easy option is to create a third axes in the background with the same grid in x direction, such that the gridline can be seen in between the two subplots.


1 Answers

How about something like this (adapted from here):

from pylab import *
from matplotlib.ticker import MultipleLocator, FormatStrFormatter

t = arange(0.0, 100.0, 0.1)
s = sin(0.1*pi*t)*exp(-t*0.01)

ax = subplot(111)
plot(t,s)

ax.xaxis.set_major_locator(MultipleLocator(20))
ax.xaxis.set_major_formatter(FormatStrFormatter('%d'))
ax.xaxis.set_minor_locator(MultipleLocator(5))

ax.yaxis.set_major_locator(MultipleLocator(0.5))
ax.yaxis.set_minor_locator(MultipleLocator(0.1))

ax.xaxis.grid(True,'minor')
ax.yaxis.grid(True,'minor')
ax.xaxis.grid(True,'major',linewidth=2)
ax.yaxis.grid(True,'major',linewidth=2)

show()

enter image description here

like image 70
Mark Avatar answered Oct 14 '22 14:10

Mark