获取轮廓的每个级别 - Matplotlib

时间:2014-09-23 21:21:29

标签: python matplotlib contour

我想知道如果轮廓线通过Matplotlib中的contour()函数生成,可以迭代到每个级别来获取其顶点。我知道我可以用这段代码遍历路径:

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()

但是,我怎样才能找到每个路径的等级,或者直接迭代轮廓的每个等级?

谢谢。

1 个答案:

答案 0 :(得分: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()