Hi all, gt allows creating graph views where vertices and/or edges are filtered out. The principle is described in the documentation: "Vertices or edges which are to be filtered should be marked with a PropertyMap with value type bool, and then set with set_vertex_filter() or set_edge_filter() methods. By default, vertex or edges with value '1' are kept in the graphs, and those with value '0' are filtered out." (https://graph-tool.skewed.de/static/doc/quickstart.html#graph-filtering) Given a layered graph, where layers are coded via an edge property, I want to draw the graphs layer by layer. This is an example graph: from graph_tool.all import * import numpy as np import pandas as pd # data edge_list = pd.DataFrame(np.array([[0, 1, 0], [1, 2, 1], [2, 0, 2]]), columns=['i', 'j', 'layer']) # create graph g = Graph(directed=False) ep_layer = g.new_edge_property('int') g.add_edge_list(edge_list.values, eprops=[ep_layer]) g.edge_properties['layer'] = ep_layer # draw graph with edge colors showing the layers graph_draw(g, edge_color=g.ep.layer) It is possible to draw a single layer (in this example layer 0) in this complicated way: # set layer to be drawn layer = 0 # create graph view ep_filter = g.new_edge_property('bool') for i in range(0, len(edge_list)): e = g.edge(edge_list['i'][i], edge_list['j'][i]) if edge_list['layer'][i] == layer: ep_filter[e] = True else: ep_filter[e] = False g_filter = GraphView(g, efilt=ep_filter) # draw filtered graph graph_draw(g_filter, edge_color=g.ep.layer) If I proceed this way I will also have to create a vertex property map to filter unused vertices and do these steps for all layers I want to draw. But isn't there a more elegant way - preferably handling vertices and edges in the same step? Many thanks and best wishes Haiko