[Matplotlib-users] Pcolormesh vs contourf

Sameer Grover sameer.grover.1 at gmail.com
Sat Jan 7 14:24:41 EST 2017

On 6 January 2017 at 06:50, Eric Firing <efiring at hawaii.edu> wrote:

> Sameer,
> They are fundamentally different in what they do; this is most clear if
> you experiment with using both methods on a low-resolution field (say 10 by
> 12 points), and with a small number of contours (5 or 10). Contouring is
> most typically done with a moderate number of contours, maybe 30 or fewer.
> It is most immediately appropriate for data values at discrete points,
> since it is interpolating.  pcolormesh does not interpolate, but shows the
> value in each quadrilateral as a block of solid color, so it is more like
> an image.
> There are data sets and situations for which either of the two methods can
> be appropriate, and other cases where one is clearly better than the
> other.  For a somewhat noisy field, pcolormesh is usually better; it allows
> one to see the signal and the noise, and let one's eye pick out the
> former.  Isolated extreme values are represented better with pcolormesh.
> For smoother fields and for seeing large-scale structure, contourf may be
> more appropriate.
> What kind of data are you plotting?
> Eric
> On 2017/01/05 2:40 PM, Sameer Grover wrote:
>> Hello,
>> I'd like to know about the difference between contourf and pcolormesh
>> and their intended uses. So far, I've been using contourf with a large
>> number of levels (150 - 200) to plot two dimensional data. Are their any
>> disadvantages of this and is pcolormesh better suited for this task?
>> As far as I can make out, contourf displays a "smoothened-out" image and
>> pcolormesh is more "boxy".
>> Thanks.
>> Sameer
>> _______________________________________________
>> Matplotlib-users mailing list
>> Matplotlib-users at python.org
>> https://mail.python.org/mailman/listinfo/matplotlib-users
> _______________________________________________
> Matplotlib-users mailing list
> Matplotlib-users at python.org
> https://mail.python.org/mailman/listinfo/matplotlib-users

Hi Eric,

The data is usually around 1000 X 1000 large or smaller, mainly
experimental or theoretical data obtained by varying two independent
parameters. With a large number of contours, the visual output from them
doesn't look too different, especially if pcolormesh is used with gouraud
shading. But I realize they do things differently.  Thank you for the

My only comment is that contourf(x,y,z) expects z of shape(size(y),
size(x)) whereas pcolormesh (x,y,z) expects z of shape (size(y)+1,
size(x)+1), for obvious reasons.

It would be nice if pcolormesh could adjust x and y so that the centres of
each quadrilateral is at the value of x and y, so that both functions could
be called in the same way.

It's not hard to do but something that could be considered if there are
enough use cases.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/matplotlib-users/attachments/20170108/0b90a0bc/attachment.html>

More information about the Matplotlib-users mailing list