Basic Graph Examples¶
This page demonstrates some basic examples of generating interactive graphs.
Example 1: A Simple Cycle Graph¶
Let's create a 5-node cycle graph and add some basic styling through node attributes and vis_options.
Interactive 5-Cycle Graph
The Python code to generate the graph data:
import networkx as nx
G = nx.cycle_graph(5)
for i, node_id in enumerate(G.nodes()):
G.nodes[node_id]["label"] = f"N{i + 1}"
G.nodes[node_id]["title"] = f"Tooltip for Node N{i + 1}"
G.nodes[node_id]["group"] = i % 2
if i == 0:
G.nodes[node_id]["color"] = "skyblue"
G.nodes[node_id]["size"] = 25
G.edges[0, 1]["label"] = "Link 0-1"
G.edges[0, 1]["color"] = "green"
G.edges[0, 1]["width"] = 3
The vis_options used (as a Python dictionary in the generation script):
{
"nodes": {"font": {"size": 14}},
"edges": {"smooth": {"enabled": True, "type": "dynamic"}},
"groups": {
"0": {"shape": "dot", "color": {"background": "lightcoral", "border": "red"}},
"1": {"shape": "square", "color": {"background": "lightgreen", "border": "green"}}
},
"interaction": {"hover": True, "navigationButtons": True},
"physics": {"enabled": True, "solver": "barnesHut"},
"layout": {
"randomSeed": 12345
}
}
Example 2: Karate Club Graph¶
Zachary's Karate Club
The Python code to generate the graph data:
import networkx as nx
G = nx.karate_club_graph()
for node_id, data in G.nodes(data=True):
data["label"] = str(node_id)
data["title"] = f"Member {node_id}\nClub: {data['club']}"
data["group"] = data["club"]
data["value"] = G.degree(node_id)
The vis_options used (as a Python dictionary in the generation script):
{
"nodes": {
"scaling": {
"min": 10,
"max": 30,
"label": {"enabled": False}
},
"font": {"size": 12}
},
"edges": {"width": 0.5, "color": "silver", "smooth": False},
"groups": {
"Mr. Hi": {"color": {"background":"orange", "border":"darkorange"}, "shape": "dot"},
"Officer": {"color": {"background":"purple", "border":"indigo"}, "shape": "ellipse"}
},
"physics": {
"stabilization": {"iterations": 1200},
"barnesHut": {"gravitationalConstant": -10000, "springLength": 120, "avoidOverlap": 0.1}
},
"layout": {"randomSeed": 42},
"interaction": {"tooltipDelay": 200, "hover": True}
}