Matplotlib Contour Plots

Steven D'Aprano steve+comp.lang.python at pearwood.info
Fri Aug 15 09:23:25 EDT 2014


Jamie Mitchell wrote:

[...]
> I just want to get a contour plot of two numpy arrays.
> When I call plt.contour on my data I get "input must be a 2D array"

You are providing a 1D array, or possibly a 3D array. So the question you
really want to ask is not "How do I do contour plots" but "how do I make a
2D array?"


> An example of one of my arrays:
> 
> array([ 2.08800006,  2.29400015,  2.00400019,  1.88000011,  2.0480001 ,
>         2.16800022,  2.0480001 ,  1.88200009,  1.95800006,  2.00200009,
>         2.02800012,  1.81200004,  1.95000005,  1.96200013,  1.95200014,
>         1.99800014,  2.07000017,  1.88200009,  1.98400009,  2.13400006,
>         2.11400008,  1.89400005,  2.05000019,  2.01999998,  2.03400016,
>         2.16600013,  2.00999999,  1.86200011,  2.19800019,  2.01200008],
>         dtype=float32)
> 
> How do I get the above array in to the right format for a contour plot?

Here's an example of making a 2D array:

py> import numpy
py> a = numpy.array([1.2, 2.5, 3.7, 4.8])  # One dimensional array
py> a
array([ 1.2,  2.5,  3.7,  4.8])
py> b = numpy.array([ [1.2, 2.5, 3.7, 4.8], 
...                   [9.5, 8.1, 7.0, 6.2] ])  # Two dimensional array
py> b
array([[ 1.2,  2.5,  3.7,  4.8],
       [ 9.5,  8.1,  7. ,  6.2]])

One dimensional arrays are made from a single list of numbers: [...]

Two dimensional arrays are made from a list of lists: [ [...], [...] ]



-- 
Steven




More information about the Python-list mailing list