Introduced:
Networkx is a library of Python that provides algorithms, generators, and drawing tools for the graph's data structure. Recently, using Ryu for shortest path acquisition, this library can be used to simplify the workload. The library uses a function to invoke the appropriate API, and its parameter types are usually graph objects.
Function API calls, follow these steps to create a build diagram:
1.networkx of loading
Calling Networkx in Python is typically only needed to import the library
import Networkx as NX
2. Creating a Diagram Object
NETWORKX provides four basic diagram objects: Graph,digraph,multigraph,multidigraph.
You can create an empty diagram of the above four diagram objects using the following call method.
G=NX. Graph () G=NX. DiGraph () G=NX. Multigraph () G=nx. Multidigraph ()
In Networkx, each node of the graph is allowed to be represented as a Hashtable object, and for each parameter of the edge in the graph, it can be identified by the way it is associated with the edge, in general, for weights, weight as keyword, and for other parameters, The user can use any keyword other than weight to name it.
3. In 2, the creation is just a pair of NULL, in order to get a node, have edges of the diagram, generally use the following function:
G.add_edge (#default Edge data=1 G.add_edge) #specify Edge data=0.9
The Add_edge () function, which needs to pass in two parameters U and V, and multiple optional parameters when calling
You and V are the two nodes in the diagram, if there is no node in the diagram, the two nodes are automatically added in the call, and the connection relationship between the two nodes is constructed, and the optional parameters usually refer to the relationship parameters such as the weight of the edge. It is important to note that if this edge is already present in the diagram, it will be followed by a new action (that is, overwriting the original information) when you re-add it.
For this function, there are several ways to create an edge in addition to the methods described above:
G.add_edge (*e) # single Edge as tuple of both Nodesg.add_edge (1, 3, weight=7, capacity=15, length=342.7) #using Man Y arguements to create Edgeg.add_edges_from ([(1, 2)]) # Add edges from Iterable container
Sometimes, when you create an edge in the default way, we may also add the relevant parameters of the edge to the side, and you can update the edge information in the following way:
#For non-string attribute keys, use subscript notation. G.add_edge (1, 2) g[1][2].update ({0:5}) #更新边的信息G. Edges[1, 2].update ({0:5}) #更新边的信息 # The above two methods of updating, choose one
The attentive friend may have noticed that I was writing about the Add_edges_from () function, which was also used to create the edge, which was slightly different from the add_edges (), and was created in a way that was add_edges () in a single node. It comes in more convenient. This function, when called, requires a node tuple as a parameter and more than one optional parameter as the edge information. You can pass it this way:
Create an edge between nodes by default:
G.add_edges_from ([(U,V)])
You can also write this, adding information at the same time you create it:
G.add_edges_from ([(3, 4), (1, 4)], label= ' WN2898 ')
In this way, the connection of a 3-4-1 diagram is constructed, and each edge is labeled.
You can then create your own graph model.
Python-networkx Learning (1)