Extracting the x and y locations from a contour is a bit of a pain in matplotlib (or at least was last time I tried it). if you do something like
c = ax.contour(x,y,z,…)
(where … stands in for the arguments you might want to supply)
then c is a QuadContourSet. To get at the contour data you need to do something like
p = c.collections[i].get_paths()
(if you want the i’th collection, i.e. contour level number i, or you could iterate of c.collections)
then p is a list of Path objects corresponding to each separate contour.
p.vertices is then an N x 2 array of the x and y values
An alternative to this is to use scikit-image package, in particular skimage.measure.find_contours. However in that case you do something like:
c = find_contours(image,level)
(where image is a 2D array) and you get back a list of (n,2) arrays with the indices of the image for the contour. To get the x,y values then you need to scale those indices accordingly.
Jonathan D. Slavin
Astrophysicist - High Energy Astrophysics Division
Center for Astrophysics | Harvard & Smithsonian
Office: (617) 496-7981 | Cell: (781) 363-0035
60 Garden Street | MS 83 | Cambridge, MA 02138