Download app.py from shukdevdatta123/NetworkX-Tutorial: direct link, hf CLI and curl.
- Browser
- Download file 1.48 kB
-
https://huggingface.co/spaces/shukdevdatta123/NetworkX-Tutorial/resolve/38f979da7a95987900e03dfd30d4a0fcebc4e101/app.py
- Command line
-
hf download hf://spaces/shukdevdatta123/NetworkX-Tutorial@38f979da7a95987900e03dfd30d4a0fcebc4e101/app.py
-
curl -L -o app.py https://huggingface.co/spaces/shukdevdatta123/NetworkX-Tutorial/resolve/38f979da7a95987900e03dfd30d4a0fcebc4e101/app.py
1.48 kB
| import streamlit as st | |
| import matplotlib.pyplot as plt | |
| import networkx as nx | |
| # Create lollipop graph | |
| G = nx.lollipop_graph(4, 6) | |
| # Initialize a list for path lengths | |
| pathlengths = [] | |
| # Display the source-target shortest path lengths | |
| st.write("### Source vertex {target:length, }") | |
| for v in G.nodes(): | |
| spl = dict(nx.single_source_shortest_path_length(G, v)) | |
| st.write(f"Vertex {v}: {spl}") | |
| for p in spl: | |
| pathlengths.append(spl[p]) | |
| # Calculate and display the average shortest path length | |
| avg_path_length = sum(pathlengths) / len(pathlengths) | |
| st.write(f"### Average shortest path length: {avg_path_length}") | |
| # Calculate and display the distribution of path lengths | |
| dist = {} | |
| for p in pathlengths: | |
| if p in dist: | |
| dist[p] += 1 | |
| else: | |
| dist[p] = 1 | |
| st.write("### Length #paths") | |
| for d in sorted(dist.keys()): | |
| st.write(f"Length {d}: {dist[d]} paths") | |
| # Display the graph metrics | |
| st.write(f"### Graph Metrics") | |
| st.write(f"Radius: {nx.radius(G)}") | |
| st.write(f"Diameter: {nx.diameter(G)}") | |
| st.write(f"Eccentricity: {nx.eccentricity(G)}") | |
| st.write(f"Center: {nx.center(G)}") | |
| st.write(f"Periphery: {nx.periphery(G)}") | |
| st.write(f"Density: {nx.density(G)}") | |
| # Visualize the graph | |
| st.write("### Graph Visualization") | |
| pos = nx.spring_layout(G, seed=3068) # Seed layout for reproducibility | |
| plt.figure(figsize=(8, 6)) | |
| nx.draw(G, pos=pos, with_labels=True, node_color='lightblue', node_size=500, font_size=10, font_weight='bold') | |
| st.pyplot(plt) | |