Santi
Santi

Reputation: 4468

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.

Upvotes: 17

Views: 18437

Answers (1)

Mark
Mark

Reputation: 108512

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

Upvotes: 34

Related Questions