Add graph generator
This commit is contained in:
parent
9277be98bf
commit
fa7251cb68
39
examples/sharding/graph_generator.py
Normal file
39
examples/sharding/graph_generator.py
Normal file
|
@ -0,0 +1,39 @@
|
|||
import json
|
||||
from pyvis.network import Network
|
||||
from sys import argv
|
||||
|
||||
COLORS = ["#7b47bf", "#70ec84", "#ffa07a", "#005582", "#165042", "#dcb2b8"]
|
||||
|
||||
# Read in topology+topics file into map
|
||||
|
||||
# Add nodes
|
||||
def main():
|
||||
net = Network()
|
||||
net.barnes_hut()
|
||||
|
||||
topology_dict = json.loads(open(argv[1]).read())
|
||||
|
||||
adj_list = topology_dict["topology"]
|
||||
topics_map = topology_dict["topic_map"]
|
||||
|
||||
# Assign colors to nodes in topics (note sender is not included in a topic)
|
||||
for topic in topics_map:
|
||||
index = int(topic)
|
||||
color = COLORS[index]
|
||||
net.add_nodes(topics_map[topic], \
|
||||
color=[color for _ in range(len(topics_map[topic]))])
|
||||
|
||||
nodes_to_add = list(adj_list.keys())
|
||||
net.add_nodes(nodes_to_add)
|
||||
for node in adj_list:
|
||||
node_val = node
|
||||
if node != "sender":
|
||||
node_val = int(node_val)
|
||||
neighbors = adj_list[node]
|
||||
for neighbor in neighbors:
|
||||
net.add_edge(node_val, neighbor)
|
||||
|
||||
net.show(argv[2])
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
Loading…
Reference in New Issue
Block a user