Components ========== Importem la biblioteca :mod:`networxk`. >>> import networkx as nx Creem un graf buit. >>> g = nx.Graph() Hi afegim dos camins. >>> nx.add_path(g, [1, 2, 4, 3, 1]) >>> nx.add_path(g, [1, 5, 3]) Visualitzem el graf. >>> import matplotlib.pyplot as plt >>> nx.draw_networkx(g) >>> plt.show() .. figure:: components-1.svg És connex? >>> nx.is_connected(g) True Quants components té? >>> nx.number_connected_components(g) 1 Quins components té? >>> for c in nx.connected_components(g): ... print(sorted(c)) [1, 2, 3, 4, 5] Hi afegim un altre camí. >>> nx.add_path(g, [6, 7]) Tornem a visualitzar el graf. >>> nx.draw_networkx(g) >>> plt.show() .. figure:: components-2.svg És connex? >>> nx.is_connected(g) False Quants components té? >>> nx.number_connected_components(g) 2 Quins components té? >>> for c in sorted(nx.connected_components(g), key=len): ... print(sorted(c)) [6, 7] [1, 2, 3, 4, 5] Hi afegim un vèrtex. >>> g.add_node(8) Visualitzem el graf un cop més. >>> nx.draw_networkx(g) >>> plt.show() .. figure:: components-3.svg És connex? >>> nx.is_connected(g) False Quants components té? >>> nx.number_connected_components(g) 3 Quins components té? >>> for c in sorted(nx.connected_components(g), key=len): ... print(sorted(c)) [8] [6, 7] [1, 2, 3, 4, 5] Quin és el component de 2? >>> cjt = nx.node_connected_component(g, 2) >>> cjt {1, 2, 3, 4, 5}