繁体   English   中英

获取轮廓的每个级别-Matplotlib

[英]Get each level of a contour - Matplotlib

我想知道,给定轮廓线如何从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()

但是,如何找到每个路径的水平,或直接在轮廓的每个水平上迭代?

谢谢。

这也许对您很清楚,但是我想强调一点,建议的代码需要注意。

另请参阅: 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()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM