我想知道如果轮廓线通过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()
但是,我怎样才能找到每个路径的等级,或者直接迭代轮廓的每个等级?
谢谢。
答案 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()