2014-09-23 101 views
0

我不知道给出的轮廓线如何产生槽从Matplotlib的contour()功能,一个可以遍历每个级别获得它的顶点。我知道我可以在路径遍历与此代码:获取轮廓的每个级别 - Matplotlib

cs = plt.contour(x, y, (f - g)) 
for collection in cs.collections: 
    paths = collection.get_paths() 
    for path in paths: 
     print(path.vertices.shape) 

plt.show() 

但是,我怎么能找到每个路径的水平,或在轮廓的每一层直接循环?

谢谢。

+0

'cs.levels'应该给每个轮廓的等级。 – tom10 2014-09-24 00:02:36

回答

0

这也许是对你很清楚,但我想强调的是护理需要所提出的代码。

参见: https://github.com/matplotlib/matplotlib/issues/367

每个路径可能只是对应于一个单一的开放或封闭的多边形,这是大多数人的期望顶点数组,但路径也可以对应于2周或更多的多边形,如果成员代码被设置为指示多边形在哪个索引处开始。天真地使用路径可能不是想要的;经常使用path.to_polygons()比较好。

总之,这个代码将工作的最简单的例子如预期,但可能会造成复杂的情况下的问题。更好的选择是:

cs = plt.contour(x, y, (f - g)) 
for collection in cs.collections: 
    for path in collection.get_paths(): 
     print path.to_polygons()