Source code for pytwinnet.visualization.topology
from __future__ import annotations
from typing import Optional
import matplotlib.pyplot as plt
from ..core.network import Network
[docs]
def plot_topology(network: Network, ax: Optional[plt.Axes] = None) -> plt.Axes:
if ax is None:
fig, ax = plt.subplots()
for node in network:
x, y, z = node.position
role = str(node.metadata.get("role", "")).lower()
if "gnb" in role or "bs" in role:
ax.scatter([x], [y], marker="^", s=80)
else:
ax.scatter([x], [y], marker="o", s=50)
ax.text(x, y, node.node_id, fontsize=8)
ax.set_xlabel("x (m)"); ax.set_ylabel("y (m)"); ax.set_title("PyTwinNet Topology")
return ax