Network
A Network is a collection of nodes. The network can also have attributes associated with it. The connection information is stored within the nodes itself. But Network will have nodes ordered based on their connection information. So that when you loop from node from first to last, you will always find output node before its input nodes.
A condition a nadi network is that it can only be a directed graph with tree structure.
Example Network file:
# network consists of edges where input node goes to output node
# each line is of the format: input -> output
tenessee -> ohio
# if your node name has characters outside of a-zA-Z_, you need to
# quote them as strings
ohio -> "lower-mississippi"
"upper-mississippi" -> "lower-mississippi"
missouri -> "lower-mississippi"
arkansas -> "lower-mississippi"
red -> "lower-mississippi"
The given network can be visualized using svg_save
function.
network load_file("./data/mississippi.net")
network command("mkdir -p output")
network svg_save(
"./output/network-mississippi.svg",
label="[{INDEX}] {_NAME:repl(-, ):case(title)}",
bgcolor="gray"
)
Results:
You can assign different graphical properties through node properties.
network load_file("./data/mississippi.net")
node[red].visual.nodecolor = "red";
node[ohio].visual.linecolor = "blue";
node[ohio].visual.linewidth = 3;
node["upper-mississippi", red].visual.nodesize = 8;
node[red].visual.nodeshape = "triangle";
node["upper-mississippi"].visual.nodeshape = "ellipse:0.5";
network svg_save(
"./output/network-mississippi-colors.svg",
label="[{INDEX}] {_NAME:repl(-, ):case(title)}",
bgcolor="gray"
)
Results: