我想从均匀间隔的二维数据(类似图像的数据)的单个轮廓中获取数据。
基于类似问题中发现的示例:如何获取等高线图(matplotlib)绘制的线的(x,y)值?
>>> import matplotlib.pyplot as plt
>>> x = [1,2,3,4]
>>> y = [1,2,3,4]
>>> m = [[15,14,13,12],[14,12,10,8],[13,10,7,4],[12,8,4,0]]
>>> cs = plt.contour(x,y,m, [9.5])
>>> cs.collections[0].get_paths()
这次调用的结果cs.collections[0].get_paths()
is:
[Path([[ 4. 1.625 ]
[ 3.25 2. ]
[ 3. 2.16666667]
[ 2.16666667 3. ]
[ 2. 3.25 ]
[ 1.625 4. ]], None)]
根据绘图,此结果是有意义的,并且似乎是等高线的 (y,x) 对的集合。
除了手动循环返回值、提取坐标并组装线数组之外,还有更好的方法从matplotlib.path
目的?从数据中提取数据时是否有需要注意的陷阱matplotlib.path
?
或者,是否有替代方案matplotlib
或者更好numpy
/scipy
做类似的事情?理想的情况是获得描述该线的 (x,y) 对的高分辨率向量,该向量可用于进一步分析,因为一般来说我的数据集并不像上面的示例那样小或简单。