Vous êtes sur la page 1sur 15

5/5/2020 Untitled

In [7]: import networkx as nx


from networkx.algorithms import bipartite

file:///C:/Users/larks/Documents/LAAD/Website Assets/COSC247/Untitled.html 1/15


5/5/2020 Untitled

In [8]: %matplotlib notebook


B = nx.Graph()
B.add_nodes_from(['Marie', 'Ada','Olivia', 'Ava', 'Sophia', 'Mia', 'May','Amel
ia', 'April', 'Julia','Ella', 'Aria',
'Grace', 'Irene'], bipartite=0)
B.add_nodes_from(['E1', 'E2', 'E3','E4','E5','E6','E7','E8','E9','E10','E11',
'E12', 'E13'], bipartite=0)
B.add_edges_from([('Marie', 'E1'), ('Marie', 'E2'), ('Marie', 'E3'), ('Marie',
'E4'), ('Marie', 'E5'), ('Marie', 'E6')])
B.add_edges_from([('Ada', 'E1'), ('Ada', 'E2'), ('Ada', 'E3'), ('Ada', 'E4'),
('Ada', 'E5'), ('Ada', 'E6')])
B.add_edges_from([('Olivia', 'E1'), ('Olivia', 'E2'), ('Olivia', 'E3'), ('Oliv
ia', 'E4'), ('Olivia', 'E5')])
B.add_edges_from([('Ava', 'E1'), ('Ava', 'E3'), ('Ava', 'E4'), ('Ava', 'E5')])
B.add_edges_from([('Sophia', 'E2'), ('Sophia', 'E3'), ('Sophia', 'E4'), ('Soph
ia', 'E5')])
B.add_edges_from([('Mia', 'E2'), ('Mia', 'E3'),('Mia', 'E5')])
B.add_edges_from([('May', 'E1'), ('May', 'E4'),('May', 'E5'), ('May', 'E6'),
('May', 'E11')])
B.add_edges_from([('Amelia', 'E1'), ('Amelia', 'E2'),('Amelia', 'E5'), ('Ameli
a', 'E6')])
B.add_edges_from([('April', 'E4'), ('April', 'E5'),('April', 'E6'), ('April',
'E7')])
B.add_edges_from([('Julia', 'E8'), ('Julia', 'E9'),('Julia', 'E10'), ('Julia',
'E12')])
B.add_edges_from([('Ella', 'E7'), ('Ella', 'E8'),('Ella', 'E9'), ('Ella', 'E1
0'), ('Ella', 'E12')])
B.add_edges_from([('Aria', 'E8'), ('Aria', 'E9'),('Ella', 'E9'), ('Aria', 'E1
2')])
B.add_edges_from([('Grace', 'E8'), ('Grace', 'E10'),('Grace', 'E11'), ('Grace'
, 'E12')])
B.add_edges_from([('Irene', 'E8'), ('Irene', 'E9'),('Irene', 'E10'), ('Irene',
'E12')])
nx.draw_circular(B, with_labels = True)

file:///C:/Users/larks/Documents/LAAD/Website Assets/COSC247/Untitled.html 2/15


5/5/2020 Untitled

C:\Users\larks\Anaconda3\lib\site-packages\networkx\drawing\nx_pylab.py:611:
MatplotlibDeprecationWarning: isinstance(..., numbers.Number)
if cb.is_numlike(alpha):

file:///C:/Users/larks/Documents/LAAD/Website Assets/COSC247/Untitled.html 3/15


5/5/2020 Untitled

In [9]: #1.2
%matplotlib notebook

B = nx.Graph()
B.add_nodes_from(['Marie', 'Ada','Olivia', 'Ava', 'Sophia', 'Mia', 'May','Amel
ia', 'April', 'Julia','Ella',
'Aria','Grace', 'Irene'], bipartite=1)
B.add_edge('Marie', 'Ada', w=6)
B.add_edge('Marie', 'Olivia', w=5)
B.add_edge('Marie', 'Ava', w=4)
B.add_edge('Marie', 'Sophia', w=4)
B.add_edge('Marie', 'Mia', w=3)
B.add_edge('Marie', 'May', w=4)
B.add_edge('Marie', 'Amelia', w=4)
B.add_edge('Marie', 'April', w=3)
B.add_edge('Ada', 'Olivia', w=5)
B.add_edge('Ada', 'Ava', w=4)
B.add_edge('Ada', 'Sophia', w=4)
B.add_edge('Ada', 'Mia', w=3)
B.add_edge('Ada', 'May', w=4)
B.add_edge('Ada', 'Amelia', w=4)
B.add_edge('Ada', 'April', w=3)
B.add_edge('Olivia', 'Ava', w=4)
B.add_edge('Olivia', 'Sophia', w=4)
B.add_edge('Olivia', 'Mia', w=3)
B.add_edge('Olivia', 'May', w=3)
B.add_edge('Olivia', 'Amelia', w=3)
B.add_edge('Olivia', 'April', w=2)
B.add_edge('Ava', 'Sophia', w=3)
B.add_edge('Ava', 'Mia', w=2)
B.add_edge('Ava', 'May', w=3)
B.add_edge('Ava', 'Amelia', w=3)
B.add_edge('Ava', 'April', w=2)
B.add_edge('Sophia', 'Mia', w=3)
B.add_edge('Sophia', 'May', w=2)
B.add_edge('Sophia', 'Amelia', w=2)
B.add_edge('Sophia', 'April', w=2)
B.add_edge('Mia', 'May', w=1)
B.add_edge('Mia', 'Amelia', w=2)
B.add_edge('Mia', 'April', w=1)
B.add_edge('May', 'Amelia', w=3)
B.add_edge('May', 'April', w=3)
B.add_edge('Grace','May', w=1)
B.add_edge('Amelia', 'April', w=2)
B.add_edge('April', 'Ella', w=1)
B.add_edge('Julia', 'Ella', w=4)
B.add_edge('Julia', 'Aria', w=3)
B.add_edge('Julia', 'Grace', w=3)
B.add_edge('Julia', 'Irene', w=4)
B.add_edge('Ella', 'Aria', w=3)
B.add_edge('Ella', 'Grace', w=3)
B.add_edge('Ella', 'Irene', w=4)
B.add_edge('Aria', 'Grace', w=2)
B.add_edge('Aria', 'Irene', w=3)
B.add_edge('Grace', 'Irene', w=3)
pos = nx.spring_layout(B, scale=2)

file:///C:/Users/larks/Documents/LAAD/Website Assets/COSC247/Untitled.html 4/15


5/5/2020 Untitled

nx.draw(B, pos, with_labels = True)


edge_labels= nx.get_edge_attributes(B, 'w')
nx.draw_networkx_edge_labels(B, pos, edge_labels,with_labels= True)

B.number_of_edges(u=None, v=None)

Out[9]: 48

In [10]: #1.3 It is more probable that Olivia would attend E13 if Marie is, because the
y are attending 5 of the same events.
# Ella and Marie are attending none of the same events, so it is less probable
Ella will attend E13.

file:///C:/Users/larks/Documents/LAAD/Website Assets/COSC247/Untitled.html 5/15


5/5/2020 Untitled

In [11]: %matplotlib notebook


#question 2.1 g2
G2 = nx.Graph()
G2.add_nodes_from(['Marie', 'Ada','Olivia', 'Ava', 'Sophia', 'Mia', 'May','Ame
lia', 'April', 'Julia','Ella',
'Aria','Grace', 'Irene'], bipartite=1)
G2.add_edge('Marie', 'Ada', w=6)
G2.add_edge('Marie', 'Olivia', w=5)
G2.add_edge('Marie', 'Ava', w=4)
G2.add_edge('Marie', 'Sophia', w=4)
G2.add_edge('Marie', 'Mia', w=3)
G2.add_edge('Marie', 'May', w=4)
G2.add_edge('Marie', 'Amelia', w=4)
G2.add_edge('Marie', 'April', w=3)
G2.add_edge('Ada', 'Olivia', w=5)
G2.add_edge('Ada', 'Ava', w=4)
G2.add_edge('Ada', 'Sophia', w=4)
G2.add_edge('Ada', 'Mia', w=3)
G2.add_edge('Ada', 'May', w=4)
G2.add_edge('Ada', 'Amelia', w=4)
G2.add_edge('Ada', 'April', w=3)
G2.add_edge('Olivia', 'Ava', w=4)
G2.add_edge('Olivia', 'Sophia', w=4)
G2.add_edge('Olivia', 'Mia', w=3)
G2.add_edge('Olivia', 'May', w=3)
G2.add_edge('Olivia', 'Amelia', w=3)
G2.add_edge('Olivia', 'April', w=2)
G2.add_edge('Ava', 'Sophia', w=3)
G2.add_edge('Ava', 'Mia', w=2)
G2.add_edge('Ava', 'May', w=3)
G2.add_edge('Ava', 'Amelia', w=3)
G2.add_edge('Ava', 'April', w=2)
G2.add_edge('Sophia', 'Mia', w=3)
G2.add_edge('Sophia', 'May', w=2)
G2.add_edge('Sophia', 'Amelia', w=2)
G2.add_edge('Sophia', 'April', w=2)
G2.add_edge('Mia', 'May', w=1)
G2.add_edge('Mia', 'Amelia', w=2)
G2.add_edge('Mia', 'April', w=1)
G2.add_edge('May', 'Amelia', w=3)
G2.add_edge('May', 'April', w=3)
G2.add_edge('Grace','May')
G2.add_edge('Amelia', 'April', w=2)
G2.add_edge('April', 'Ella', w=1)
G2.add_edge('Julia', 'Ella', w=4)
G2.add_edge('Julia', 'Aria', w=3)
G2.add_edge('Julia', 'Grace', w=3)
G2.add_edge('Julia', 'Irene', w=4)
G2.add_edge('Ella', 'Aria', w=3)
G2.add_edge('Ella', 'Grace', w=3)
G2.add_edge('Ella', 'Irene', w=4)
G2.add_edge('Aria', 'Grace', w=2)
G2.add_edge('Aria', 'Irene', w=3)
G2.add_edge('Grace', 'Irene', w=3)
nx.draw_circular(G2, with_labels = True)
G2.number_of_edges(u=None, v=None)

file:///C:/Users/larks/Documents/LAAD/Website Assets/COSC247/Untitled.html 6/15


5/5/2020 Untitled

Out[11]: 48

In [12]: #2.2) Is the G2 graph connected? Answer: yes. Every pair of nodes are connect
ed by a path.
#2.3) G2 is not a complete graph because there is not a direct link between e
very pair of nodes. The
#nodes Irene, Grace, Aria, Ella and Julia are unable to connect to the other n
odes because Irene and Marie
#aren't connected and neither are April and Julia.
# In order for G2 to be a complete graph, the 9 nodes on top (April,Amelia, Ma
y, Mia, Sophia, Ava,
#Olivia, Ada, Marie) must be connected to the bottom 5 nodes (Julia, Ella, Ari
a, Grace, Irene)
#So thats 9 x5 -2 Because April and Ella are already connected and so are Grac
e and May. 43 more edges + 48 = 91.

file:///C:/Users/larks/Documents/LAAD/Website Assets/COSC247/Untitled.html 7/15


5/5/2020 Untitled

In [13]: #2.4
%matplotlib notebook

G2 = nx.Graph()
G2.add_nodes_from(['Marie', 'Ada','Olivia', 'Ava', 'Sophia', 'Mia', 'May','Ame
lia', 'April', 'Julia','Ella', 'Aria','Grace',
'Irene'], bipartite=1)
G2.add_edge('Marie', 'Ada', w=6)
G2.add_edge('Marie', 'Olivia', w=5)
G2.add_edge('Marie', 'Ava', w=4)
G2.add_edge('Marie', 'Sophia', w=4)
G2.add_edge('Marie', 'Mia', w=3)
G2.add_edge('Marie', 'May', w=4)
G2.add_edge('Marie', 'Amelia', w=4)
G2.add_edge('Marie', 'April', w=3)
G2.add_edge('Ada', 'Olivia', w=5)
G2.add_edge('Ada', 'Ava', w=4)
G2.add_edge('Ada', 'Sophia', w=4)
G2.add_edge('Ada', 'Mia', w=3)
G2.add_edge('Ada', 'May', w=4)
G2.add_edge('Ada', 'Amelia', w=4)
G2.add_edge('Ada', 'April', w=3)
G2.add_edge('Olivia', 'Ava', w=4)
G2.add_edge('Olivia', 'Sophia', w=4)
G2.add_edge('Olivia', 'Mia', w=3)
G2.add_edge('Olivia', 'May', w=3)
G2.add_edge('Olivia', 'Amelia', w=3)
G2.add_edge('Olivia', 'April', w=2)
G2.add_edge('Ava', 'Sophia', w=3)
G2.add_edge('Ava', 'Mia', w=2)
G2.add_edge('Ava', 'May', w=3)
G2.add_edge('Ava', 'Amelia', w=3)
G2.add_edge('Ava', 'April', w=2)
G2.add_edge('Sophia', 'Mia', w=3)
G2.add_edge('Sophia', 'May', w=2)
G2.add_edge('Sophia', 'Amelia', w=2)
G2.add_edge('Sophia', 'April', w=2)
G2.add_edge('Mia', 'May', w=1)
G2.add_edge('Mia', 'Amelia', w=2)
G2.add_edge('Mia', 'April', w=1)
G2.add_edge('May', 'Amelia', w=3)
G2.add_edge('May', 'April', w=3)
G2.add_edge('Grace','May')
G2.add_edge('Amelia', 'April', w=2)
G2.add_edge('April', 'Ella', w=1)
G2.add_edge('Julia', 'Ella', w=4)
G2.add_edge('Julia', 'Aria', w=3)
G2.add_edge('Julia', 'Grace', w=3)
G2.add_edge('Julia', 'Irene', w=4)
G2.add_edge('Ella', 'Aria', w=3)
G2.add_edge('Ella', 'Grace', w=3)
G2.add_edge('Ella', 'Irene', w=4)
G2.add_edge('Aria', 'Grace', w=2)
G2.add_edge('Aria', 'Irene', w=3)
G2.add_edge('Grace', 'Irene', w=3)
G2.add_edge('Nora', 'Mila', w=3)

file:///C:/Users/larks/Documents/LAAD/Website Assets/COSC247/Untitled.html 8/15


5/5/2020 Untitled

nx.draw_circular(G2, with_labels = True)


G2.number_of_edges(u=None, v=None)
G2. number_of_edges()

#2.4 The giant component is 48 - the total number of edges minus 1.It is 48 be
cause everything is connected except the
#Nora/Mila edge.

Out[13]: 49

In [ ]:

In [14]: #2.5) April is the node with the largest node degree. Her node degree is 9.

In [15]: #2.6) Average node degree for an undirected graph is 2E/N. We found the number
of edges in 2.1 and 2.4. 2x49/16 = 6.125.

file:///C:/Users/larks/Documents/LAAD/Website Assets/COSC247/Untitled.html 9/15


5/5/2020 Untitled

In [58]: %matplotlib notebook


#3.1
G3 = nx.Graph()
G3.add_nodes_from(['Julia','Ella', 'Aria','Grace', 'Irene', 'Zoey'], bipartite
=1)
G3.add_edge('Julia', 'Ella', w=4)
G3.add_edge('Julia', 'Aria', w=3)
G3.add_edge('Julia', 'Grace', w=3)
G3.add_edge('Julia', 'Irene', w=4)
G3.add_edge('Ella', 'Aria', w=3)
G3.add_edge('Ella', 'Grace', w=3)
G3.add_edge('Ella', 'Irene', w=4)
G3.add_edge('Aria', 'Grace', w=2)
G3.add_edge('Aria', 'Irene', w=3)
G3.add_edge('Grace', 'Irene', w=3)
G3.add_edge('Zoey','Aria', w=3)
nx.draw_circular(G3, with_labels = True)
G3.number_of_edges(u=None, v=None)

Out[58]: 11

file:///C:/Users/larks/Documents/LAAD/Website Assets/COSC247/Untitled.html 10/15


5/5/2020 Untitled

In [57]: #3.2
import matplotlib.pyplot as plt
names = (['Julia','Ella', 'Aria','Grace', 'Irene', 'Zoey'])
values = ([0.36,0.36,0.36,0.36,0.36,0.9])
plt.bar(names,values)
plt.show

Out[57]: <function matplotlib.pyplot.show(*args, **kw)>

In [43]: #3.3
print(nx.average_clustering(G3))

0.7666666666666666

In [ ]: #3.5 Because Zoey got deleted, I assume the clustering coefficient will increa
se because each nodes neighbors will be
#connected to eachother. Zoey was only connected to one other node, so with he
r being deleted, the other nodes create
#a more connected component.

In [ ]:

file:///C:/Users/larks/Documents/LAAD/Website Assets/COSC247/Untitled.html 11/15


5/5/2020 Untitled

In [31]: %matplotlib notebook

G4 = nx.Graph()
G4.add_nodes_from(['Julia','Ella', 'Aria','Grace', 'Irene'], bipartite=1)
G4.add_edge('Julia', 'Ella', w=4)
G4.add_edge('Julia', 'Aria', w=3)
G4.add_edge('Julia', 'Grace', w=3)
G4.add_edge('Julia', 'Irene', w=4)
G4.add_edge('Ella', 'Aria', w=3)
G4.add_edge('Ella', 'Grace', w=3)
G4.add_edge('Ella', 'Irene', w=4)
G4.add_edge('Aria', 'Grace', w=2)
G4.add_edge('Aria', 'Irene', w=3)
G4.add_edge('Grace', 'Irene', w=3)

nx.draw_circular(G4, with_labels = True)


G4.number_of_edges(u=None, v=None)
#3.6
print(nx.average_clustering(G4))

1.0

In [ ]:

file:///C:/Users/larks/Documents/LAAD/Website Assets/COSC247/Untitled.html 12/15


5/5/2020 Untitled

In [32]: #3.7
GR = nx.gnm_random_graph(5, 9)
nx.draw_circular(GR, with_labels = True)

#G4
#GR = random graph

#connectivity (if it is connected)


#G4 has a greater connectivty then the random graph because every node is conn
ected to every other node
#and the random graph is not a connected graph, as there is not a link between
node 1 and 4

#Clustering coefficent
#G4 has a greater clustering coefficient of 1.0 while the random graph (GR) ha
s a lower clustering coeffecient of 0.9
#G4 is greater because the nodes are more connected as it is a complete graph.
All nodes are connected
#The random graph GR is not a complete graph, and node 1 and 4 are not connect
ed to all the other nodes, so it has
#a lower clustering coefficent

#path length
print("G4: ", nx.average_shortest_path_length(G4))
print("GR ", nx.average_shortest_path_length(GR))
#G4 has a smaller average shortest path because every node is connected to eve
ry other node, so the path
#lengths between two nodes would be 1. Every node in GR is not connected to ev
ery other node, so it could
#take longer to go between two nodes.

#degree distribution
#When normalizing the nodes, using Nk (node degree)/N (total number of nodes),
G4 would have all the nodes being
#the same degree distribution (all nodes have 4 edges), whereas GR's graph wou
ld have two bars (3 nodes have 4
#edges and the other having 3 edges).

In [ ]: #3.8
#The longest shortest in G2 is 3. It is a small world because every node can r
each eachother by a small number of hops.
#3.9 attached photo on word doc
#3.10 attached photo on word doc

In [ ]: #4 attached photo on word doc

file:///C:/Users/larks/Documents/LAAD/Website Assets/COSC247/Untitled.html 13/15


5/5/2020 Untitled

In [46]: %matplotlib notebook

G5 = nx.Graph()
G5.add_nodes_from(['Marie', 'Ada','Olivia', 'Ava', 'Sophia'], bipartite=1)
G5.add_edge('Marie', 'Ada', w=6)
G5.add_edge('Marie', 'Olivia', w=5)
G5.add_edge('Marie', 'Ava', w=4)
G5.add_edge('Marie', 'Sophia', w=4)
G5.add_edge('Ada', 'Olivia', w=5)
G5.add_edge('Ada', 'Ava', w=4)
G5.add_edge('Ada', 'Sophia', w=4)
G5.add_edge('Olivia', 'Ava', w=4)
G5.add_edge('Olivia', 'Sophia', w=4)
G5.add_edge('Ava', 'Sophia', w=3)

pos = nx.spring_layout(G5)
nx.draw(G5,pos,edge_color='black',width=1,linewidths=1,\
node_size=500,\
labels={node:node for node in G5.nodes()})
nx.draw_networkx_edge_labels(G5, pos, edge_labels={('Marie','Olivia'): "+" ,\
('Sophia','Marie'): '+',('Sophia', 'Olivia'): '+', ('Sophia','Ava'): "-",\
('Marie', 'Ava'): "-",("Sophia","Ada"): '+', ("Marie","Ada"): '+',("Ava","Ada"
): '-', ('Olivia','Ada'): "+", \
('Ava','Olivia'): '-'},font_color='red')
plt.axis('off')
plt.show()

#number_of_edges(u=None, v=None)

#5.2

file:///C:/Users/larks/Documents/LAAD/Website Assets/COSC247/Untitled.html 14/15


5/5/2020 Untitled

In [ ]: #5.1 attached photo on word doc

In [ ]: #5.3 attached photo on word doc

file:///C:/Users/larks/Documents/LAAD/Website Assets/COSC247/Untitled.html 15/15

Vous aimerez peut-être aussi