[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
clarification.

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.

Sameer
-------------- 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