Matplotlib Contour Plots
Jamie Mitchell
jamiemitchell1604 at gmail.com
Fri Aug 15 10:42:14 EDT 2014
On Friday, August 15, 2014 2:23:25 PM UTC+1, Steven D'Aprano wrote:
> 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
Thank you Steven.
I created the 2D array which read as:
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]],
[[ 8.5199995 , 8.88000011, 8.55000019, 7.94999981, 8.60999966,
8.5199995 , 8.80000019, 8.13000011, 8.68999958, 8.72999954,
8.47999954, 8.25 , 8.40999985, 8.43999958, 8.38999939,
8.35999966, 8.63999939, 8.51000023, 8.36999989, 8.69999981,
8.52999973, 8.13999939, 8.36999989, 8.42000008, 8.55999947,
8.72999954, 9.09000015, 8.18999958, 8.76000023, 8.53999996]]], dtype=float32)
Unfortunately when I called plt.contour on this, it said again "Input must be a 2D array".
Is there something I have missed?
Thanks,
Jamie
More information about the Python-list
mailing list