首页 > 解决方案 > 通过 x,y 坐标限制确定子图的最有效方法?

问题描述

对于具有 NetworkX 中每个节点的坐标信息的图,我希望能够创建提供 x, y 限制的子图[(min_x, max_x), (min_y, max_y)]。我是否需要提取所有坐标并根据我的约束手动检查它们

list(zip(*graph.nodes(data = "pos")))

或者有没有更直接或更简单的方法来解决这个任务?

非常感谢您提前。我

标签: networkx

解决方案


您可以使用 networkx 的子图视图。所以,像:

def select_by_coords(xmin, xmax, ymin, ymax):
    def inner_select(node):
        node_dict = dict(node)
        return xmin < node_dict['x'] < xmax && ymin < node_dict['y'] < ymax
    
    return inner_select

subgraph = subgraph_view(graph, filter_node=select_by_coords(xmin, xmax, ymin, ymax))

推荐阅读