The number of nodes and edges I calculated manually and by a method provided by networkx library dont match
I am trying to analyse a graph using networkx library in Python. I have implemented a function that returns the nodes and edges of that graph. After that I counted the number of nodes and edges by implementing the len() function for nodes and edges, which gave me 17 for both nodes and edges. However, when I used the method graph.number_of_nodes() of networkx library it gave me 53.
My code:
import pandas as pd
import networkx as nx
import matplotlib.pyplot as plt
header_list = ["a","b","w"]
E =pd.read_csv("aves-barn-swallow-contact-network.edges",sep=" ",header=
None,names=header_list)
# print(E.head()) # prints first few rows of the csv file
G = nx.from_pandas_edgelist(E,"a","b",["w"])
nx.draw(G)
plt.show()
class GraphAnalyse:
#finding nodes and edges
def nodeEdge(self,Graph):
nodes = Graph.nodes()
edges = Graph.edges()
return nodes,edges
# displaying info about graph
def display(self,Graph):
nodesManual,edgesManual = self.nodeEdge(Graph) # calculated by me
n,e= len(nodesManual),len(edgesManual) # calculated by me
n2,e2 = Graph.number_of_nodes(),Graph.number_of_edges() #calculated by library
print("No of nodes calculated by me: ",n)
print("No of nodes calculated by library:",e)
print("No of edges calculated by me:",n2)
print("No of edges calculated by library:",e2)
abscn= GraphAnalyse()
# print(abscn.nodeEdge(G))
abscn.display(G)
The graph when plotted shows 17 nodes. Here is the screenshot of plotted graph.
Here is my screenshot of output:
source https://stackoverflow.com/questions/76401952/the-number-of-nodes-and-edges-i-calculated-manually-and-by-a-method-provided-by
Comments
Post a Comment