相关疑难解决方法(0)

Python:从matplotlib.pyplot.contour()中查找轮廓线

我试图为某些数据找到(但不是绘制!)轮廓线:

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) 
Run Code Online (Sandbox Code Playgroud)

我知道cn包含我想要的轮廓线,但我似乎无法找到它们.我尝试了几件事:

print dir(cn) 
pprint(cn.collections[0]) 
print dir(cn.collections[0]) 
pprint(cn.collections[0].figure) 
print dir(cn.collections[0].figure) 
Run Code Online (Sandbox Code Playgroud)

无济于事.我知道cn是一个ContourSet,并且cn.collections是一个LineCollections 数组.我认为a LineCollection是一系列线段,但我无法弄清楚如何提取这些段.

我的最终目标是创建一个KML文件,在世界地图上绘制数据,以及该数据的轮廓.

但是,由于我的一些数据点很接近,而其他数据点很远,我需要构成轮廓的实际多边形(线串),而不仅仅是轮廓的光栅化图像.

我有点惊讶qhull不做这样的事情.

使用Mathematica ListContourPlot然后导出为SVG工作,但我想使用开源的东西.

我不能使用众所周知的CONREC算法,因为我的数据不在网格上(对于给定的x值,并不总是有多个y值,反之亦然).

该解决方案不需要python,但必须是Linux上的开源和可运行的.

python numpy spatial matplotlib contour

19
推荐指数
2
解决办法
1万
查看次数

标签 统计

contour ×1

matplotlib ×1

numpy ×1

python ×1

spatial ×1