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 -- https://mail.python.org/mailman/listinfo/python-list