import networkx as nx
import matplotlib.pyplot as plt

# サンプル: batman-adv メッシュトポロジ
G = nx.Graph()
nodes = ['AP-01', 'AP-02', 'AP-03', 'GW-01', 'AP-04']
edges = [('GW-01','AP-01',70),('GW-01','AP-02',85),('AP-01','AP-03',60),('AP-02','AP-03',75),('AP-03','AP-04',50)]
G.add_nodes_from(nodes)
for u,v,w in edges:
    G.add_edge(u, v, weight=w)
pos = nx.spring_layout(G, seed=42)
nx.draw(G, pos, with_labels=True, node_color='skyblue', node_size=1200, font_size=10)
labels = {(u,v): f"{d['weight']}%" for u,v,d in G.edges(data=True)}
nx.draw_networkx_edge_labels(G, pos, edge_labels=labels)
plt.title('Sample Network Topology (batman-adv)')
plt.tight_layout()
plt.savefig('topology.png', dpi=120)
print('topology.png saved')