Heat maps

Hi everyone. I was trying to produce an irregular heat map broken down by day/weeks, as excellently shown here:


(source: http://stackoverflow.com/questions/2076370/most-underused-data-visualization)

How would you proceed to achieve such a result with matplotlib?

My initial idea was to use different images (one per year), by generating the pixels by manually binning my data. Then use imgshow with a different subplot for each year.
Then place ytics/xtics and the colorbar manually.

I'm wondering if there's a better way though. In this case ggplot2 is so succinct that makes me cringe.