Python: Konturlinien aus matplotlib.pyplot.contour () finden
Ich versuche, Konturlinien für einige Daten zu finden (aber nicht zu zeichnen!):
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)
Ich kennecn
enthält die Konturlinien, die ich möchte, aber ich kann sie scheinbar nicht erreichen. Ich habe verschiedene Dinge ausprobiert:
print dir(cn)
pprint(cn.collections[0])
print dir(cn.collections[0])
pprint(cn.collections[0].figure)
print dir(cn.collections[0].figure)
umsonst. Ich kennecn
ist einContourSet
, undcn.collections
ist ein Array vonLineCollection
s. Ich würde ein denkenLineCollection
ist ein Array von Liniensegmenten, aber ich kann nicht herausfinden, wie man diese Segmente extrahiert.
Mein letztendliches Ziel ist es, eine KML-Datei zu erstellen, in der Daten auf einer Weltkarte und die Konturen für diese Daten aufgezeichnet werden.
Da jedoch einige meiner Datenpunkte nahe beieinander liegen und andere weit entfernt sind, benötige ich die tatsächlichen Polygone (Linienfolgen), aus denen die Konturen bestehen, und nicht nur ein gerastertes Bild der Konturen.
Ich bin etwas überraschtqhull
macht sowas nicht.
Mathematik benutzenListContourPlot
und dann als SVG exportieren funktioniert, aber ich möchte etwas Open Source verwenden.
Ich kann den bekannten CONREC-Algorithmus nicht verwenden, da sich meine Daten nicht in einem Netz befinden (es gibt nicht immer mehrere y-Werte für einen bestimmten x-Wert und umgekehrt).
Die Lösung muss nicht auf Python basieren, sondern Open Source und unter Linux lauffähig sein.