Returns a subgraph of some nodes Parameters ---------- from_nodes : list of object The nodes in subgraph. Returns ------- nodes_subgraph : easygraph.Graph The subgraph consisting of *from_nodes*. Examples ----
(self, from_nodes: list)
| 1073 | return G |
| 1074 | |
| 1075 | def nodes_subgraph(self, from_nodes: list): |
| 1076 | """Returns a subgraph of some nodes |
| 1077 | |
| 1078 | Parameters |
| 1079 | ---------- |
| 1080 | from_nodes : list of object |
| 1081 | The nodes in subgraph. |
| 1082 | |
| 1083 | Returns |
| 1084 | ------- |
| 1085 | nodes_subgraph : easygraph.Graph |
| 1086 | The subgraph consisting of *from_nodes*. |
| 1087 | |
| 1088 | Examples |
| 1089 | -------- |
| 1090 | |
| 1091 | >>> G = eg.Graph() |
| 1092 | >>> G.add_edges([(1,2), (2,3), (2,4), (4,5)]) |
| 1093 | >>> G_sub = G.nodes_subgraph(from_nodes= [1,2,3]) |
| 1094 | |
| 1095 | """ |
| 1096 | # Edge |
| 1097 | from_nodes = set(from_nodes) |
| 1098 | G = self.__class__() |
| 1099 | G.graph.update(self.graph) |
| 1100 | from_nodes = set(from_nodes) |
| 1101 | for node in from_nodes: |
| 1102 | try: |
| 1103 | G.add_node(node, **self._node[node]) |
| 1104 | except KeyError: |
| 1105 | pass |
| 1106 | |
| 1107 | for v, edge_data in self._adj[node].items(): |
| 1108 | if v in from_nodes: |
| 1109 | G.add_edge(node, v, **edge_data) |
| 1110 | return G |
| 1111 | |
| 1112 | def ego_subgraph(self, center): |
| 1113 | """Returns an ego network graph of a node. |
no test coverage detected