shukdevdatta123 commited on
Commit
8f2e009
·
verified ·
1 Parent(s): 337b460

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +47 -1
app.py CHANGED
@@ -20,7 +20,8 @@ sidebar_option = st.sidebar.radio("Select an option",
20
  "Drawing: Multipartite Layout", "Drawing: Node Colormap",
21
  "Drawing: Rainbow Coloring", "Drawing: Random Geometric Graph","Drawing: Self-loops",
22
  "Drawing: Simple Path", "Drawing: Spectral Embedding", "Drawing: Traveling Salesman Problem",
23
- "Drawing: Weighted Graph", "3D Drawing: Animations of 3D Rotation", "3D Drawing: Basic Matplotlib"])
 
24
 
25
  # Helper function to draw and display graph
26
  def draw_graph(G, pos=None, title="Graph Visualization"):
@@ -28,6 +29,51 @@ def draw_graph(G, pos=None, title="Graph Visualization"):
28
  nx.draw(G, pos=pos, with_labels=True, node_color='lightblue', node_size=500, font_size=10, font_weight='bold')
29
  st.pyplot(plt)
30
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
31
  if sidebar_option == "3D Drawing: Animations of 3D Rotation":
32
  st.title("3D Drawing: Animations of 3D Rotation")
33
 
 
20
  "Drawing: Multipartite Layout", "Drawing: Node Colormap",
21
  "Drawing: Rainbow Coloring", "Drawing: Random Geometric Graph","Drawing: Self-loops",
22
  "Drawing: Simple Path", "Drawing: Spectral Embedding", "Drawing: Traveling Salesman Problem",
23
+ "Drawing: Weighted Graph", "3D Drawing: Animations of 3D Rotation", "3D Drawing: Basic Matplotlib",
24
+ "Graphviz Layout: Circular Tree"])
25
 
26
  # Helper function to draw and display graph
27
  def draw_graph(G, pos=None, title="Graph Visualization"):
 
29
  nx.draw(G, pos=pos, with_labels=True, node_color='lightblue', node_size=500, font_size=10, font_weight='bold')
30
  st.pyplot(plt)
31
 
32
+ # Default example code
33
+ def default_example_circular_tree():
34
+ G = nx.balanced_tree(3, 5)
35
+ pos = nx.nx_agraph.graphviz_layout(G, prog="twopi", args="")
36
+ plt.figure(figsize=(8, 8))
37
+ nx.draw(G, pos, node_size=20, alpha=0.5, node_color="blue", with_labels=False)
38
+ plt.axis("equal")
39
+ st.pyplot(plt)
40
+
41
+ # Create your own graph option
42
+ def create_own_graph_circular_tree():
43
+ # Input fields to customize the graph
44
+ branching_factor = st.number_input("Branching Factor", min_value=2, max_value=10, value=3)
45
+ depth = st.number_input("Depth", min_value=1, max_value=10, value=5)
46
+
47
+ # Add a button to generate the graph
48
+ generate_button = st.button("Generate Graph")
49
+
50
+ if generate_button:
51
+ # Generate graph and layout
52
+ G = nx.balanced_tree(branching_factor, depth)
53
+ pos = nx.nx_agraph.graphviz_layout(G, prog="twopi", args="")
54
+
55
+ # Draw the graph
56
+ plt.figure(figsize=(8, 8))
57
+ nx.draw(G, pos, node_size=20, alpha=0.5, node_color="blue", with_labels=False)
58
+ plt.axis("equal")
59
+ st.pyplot(plt)
60
+
61
+ if sidebar_option == "Graphviz Layout: Circular Tree":
62
+ st.title("Graphviz Layout: Circular Tree")
63
+
64
+ # Provide options for Default Example or Custom Graph
65
+ graph_mode = st.radio(
66
+ "Choose a Mode:",
67
+ ("Default Example", "Create Your Own"),
68
+ help="Default example shows a balanced tree graph, or you can create your own custom graph."
69
+ )
70
+
71
+ # Display the chosen option
72
+ if graph_mode == "Default Example":
73
+ default_example_circular_tree()
74
+ elif graph_mode == "Create Your Own":
75
+ create_own_graph_circular_tree()
76
+
77
  if sidebar_option == "3D Drawing: Animations of 3D Rotation":
78
  st.title("3D Drawing: Animations of 3D Rotation")
79