Python: encuentra líneas de contorno desde matplotlib.pyplot.contour ()
Estoy tratando de encontrar (pero no dibujar) líneas de contorno para algunos datos:
from pprint import pprint
import matplotlib.pyplot
z = [[0.350087, 0.0590954, 0.002165], [0.144522, 0.885409, 0.378515],
[0.027956, 0.777996, 0.602663], [0.138367, 0.182499, 0.460879],
[0.357434, 0.297271, 0.587715]]
cn = matplotlib.pyplot.contour(z)
Lo sécn
contiene las líneas de contorno que quiero, pero parece que no puedo llegar a ellas. He intentado varias cosas:
print dir(cn)
pprint(cn.collections[0])
print dir(cn.collections[0])
pprint(cn.collections[0].figure)
print dir(cn.collections[0].figure)
en vano. Lo sécn
es unContourSet
ycn.collections
es una matriz deLineCollection
s. Pensaría que unLineCollection
es una matriz de segmentos de línea, pero no puedo averiguar cómo extraer esos segmentos.
Mi objetivo final es crear un archivo KML que traza datos en un mapa del mundo y los contornos de esos datos también.
Sin embargo, dado que algunos de mis puntos de datos están muy juntos y otros están muy lejos, necesito los polígonos reales (cadenas lineales) que forman los contornos, no solo una imagen rasterizada de los contornos.
Estoy algo sorprendidoqhull
no hace algo como esto
Usando Mathematica'sListContourPlot
y luego la exportación como SVG funciona, pero quiero usar algo de código abierto.
No puedo usar el conocido algoritmo CONREC porque mis datos no están en una malla (no siempre hay múltiples valores y para un valor x dado, y viceversa).
La solución no tiene que ser python, pero tiene que ser de código abierto y ejecutable en Linux.