Ανάλυση Δικτύων με το NetworkX της Python: Μια προκαταρκτική...

48
Ανλυση Δικτων ε το NetworkX τη Python Μωυσ Α. Μπουντουρδη Τα Μαθηατικν Πανεπιστηου Πτρα [email protected] 22 Νοεβρου 2012 Μωυσ Α. Μπουντουρδη Ανλυση Δικτων ε το NetworkX τη Python

description

Ανάλυση Δικτύων με το NetworkX της Python: Μια προκαταρκτική (αλλά ημιτελής ως το καλοκαίρι 2014) εισαγωγή

Transcript of Ανάλυση Δικτύων με το NetworkX της Python: Μια προκαταρκτική...

  • 1. Anlush Diktwnme to NetworkX thc PythonMwusc A. MpountourdhcTmma Majhmatikn Panepisthmou [email protected] Noembrou 2012Mwusc A. Mpountourdhc Anlush Diktwn me to NetworkX thc Python

2. Pnakac Perieqomnwn1 Python kai NetworkX2 Eisagwg GrfwnMh Kateujunmenoi GrfoiKateujunmenoi GrfoiGrfoi me Brh AkmnDimerec GrfoiQarakthristik (Attributes) Kmbwn kai AkmnTpoi Grfwn kai Sqesiakn DedomnwnGenntorec Prokataskeuasmnwn Grfwn3 Diktuak MtraBajmo KmbwnKentrikthtec KmbwnSuntelestc Sussreushc kai MetabatikthtaAmoibaithtaApostseicMwusc A. Mpountourdhc Anlush Diktwn me to NetworkX thc Python 3. 4 Diktuako DiamerismoSunistsec kai KlkeckPurnec (kCores)BlockmodelingKointhtec (Communities)5 Diktuak MontlaAnameiximthta (Assortativity)Epirro kai DiqushDktua Mikrn Ksmwn (SmallWorlds)Dktua Qwrc Klmaka (ScaleFree)Mwusc A. Mpountourdhc Anlush Diktwn me to NetworkX thc Python 4. Python kai NetworkXH Python enai mia ermhneutik glssa, dhlad,ekteletai qwrc na qreizetai na persei ap thndiadikasa thc sntaxhc.H Python diatjetai gia katbasma (maz me odhgecegkatstashc) gia la ta leitourgik sustmataap to http://www.python.org/download/. Idiateragia ta Windows sunisttai h ActivePython.To NetworkX enai na pakto thc Python gia thndhmiourga kai ton qeirism grfwn kai diktwn.To pakto, h tekmhrwsh ki lloi proi touNetworkX enai diajsimoi stohttp://networkx.lanl.gov/, pwc kai sthn apojkhpaktwn thc Python PyPI.Mwusc A. Mpountourdhc Anlush Diktwn me to NetworkX thc Python 5. Mia apeujeac (oneclick) egkatstash thc Python,tou NetworkX ki llwn mondwn thc Python mporena gnei ap thn dianom thc Python Enthought,pou dnetai dwren gia akadhmak qrsh.Pollc qrsimec plhroforec gia thn egkatstashtwn Python, NetworkX ki llwn aparathtwnupologistikn prwn dnontai sth selda twnResources tou majmatoc Comp 200 touPanepisthmou tou Rice.'Oloi oi kdikec twn diafanein ed qoundokimasje pnw sthn kdosh 2.7.3 thc Python kaithn kdosh 1.7 tou NetworkX.Mwusc A. Mpountourdhc Anlush Diktwn me to NetworkX thc Python 6. Sto proomio thc grafc (script) lwn twnektelomenwn ed kwdkwn thc Python ja prpeina eisgontai oi exc grammc:import networkx as nximport matplotlib . pyplot as pltimport pylabSthn antigraf ki epikllhsh twn entoln poudnontai sth sunqeia prpei na proseqje hstoqish stic allagc grammn, giat h Pythonenai euasjhth wc proc thn autmath topojthshesoqn (indentation).Mwusc A. Mpountourdhc Anlush Diktwn me to NetworkX thc Python 7. Eisagwg GrfwnPrta, dnontai oi entolc gia mh kateujunmenoucgrfouc.Arqik, dhmiourgetai nac kenc grfoc:G = nx. Graph ()Met, eisgontai arqik oi kmboi, p.q., oi 5kmboi '1', '2', '3', '4' kai '5' mpanoun wc exc:G. add_nodes_from ([1,2,3,4,5])Bbaia, ant gia arijmoc, oi kmboi mporon naeisgontai wc onmata lxeic, p.q.:G. add_nodes_from ([ 'John ', 'Mary '])G. add_node (" London ")G. add_nodes_from ([ 'a','b','c','d','e'])Mwusc A. Mpountourdhc Anlush Diktwn me to NetworkX thc Python 8. Tloc, eisgontai oi akmc, p.q., gia touc 5kmbouc 15 na 6 sundseic:G. add_edges_from ([(1,2),(1,4),(2,3),(3,4),(3,5),(4,5 )])Oi lstec kai to pljoc twn eisaqjntwn kmbwnkai akmn dnontai ap tic entolc:G. nodes ()G. number_of_nodes ()G. edges ()G. number_of_edges ()Mwusc A. Mpountourdhc Anlush Diktwn me to NetworkX thc Python 9. Gia to sqediasm tou eisaqjntoc grfou, p.q,tou paradegmatoc auto tou grfou me 5kmbouc kai 6 akmc, ektelontai oi entolc:plt . figure ()nx. draw (G)plt . show ( block = False )H teleutaa entol dqetai diforec paramtrouc,pwc, p.q., gia diaforetik tpo sqedou (layout),mgejoc kai qrma kmbwn kai afaresh twnonomtwn (ids) twn kmbwn:nx. draw_spring (G, node_size =100 , node_color ='# A0CBE2 ',with_labels = False )Mwusc A. Mpountourdhc Anlush Diktwn me to NetworkX thc Python 10. Paralepontac parametropoiseic, o sqediasmctou grfou tou paradegmatoc dnei to sqma:Mwusc A. Mpountourdhc Anlush Diktwn me to NetworkX thc Python 11. Oi kmboi mporon na topotethjon se stajerc jseic,efson o grfoc eqe eisaqje me tic suntetagmnectouc, pou mpore na gnei, p.q., sto pardeigma autwc exc:pos ={1:(0,0),2:(1,0),4:(0,1),3:(1,1),5:(0.5,2.0)}nx. draw (G, pos )Mwusc A. Mpountourdhc Anlush Diktwn me to NetworkX thc Python 12. Eisagwg Kateujunmenwn GrfwnGnetai wc exc, p.q., sto pardeigma aut:G=nx. DiGraph ()G. add_nodes_from (["A","B","C","D"])G. add_edges_from ([( "A","B"), ("C","A"), ("C","B"),("B","D")])Mwusc A. Mpountourdhc Anlush Diktwn me to NetworkX thc Python 13. Eisagwg Grfwn me Brh AkmnGnetai, p.q., sto pardeigma aut me tic entolc:G=nx. Graph ()G. add_weighted_edges_from ([( 'a','b',4),( 'a','c',8),('a','d',5),( 'c','d',3)])kai o sqediasmc wc exc:pos =nx. spring_layout (G)edge_labels = dict ([((u,v ,),d['weight '])for u,v,d in G. edges ( data = True )])nx. draw_networkx_nodes (G,pos , node_size = 700)nx. draw_networkx_edges (G, pos)nx. draw_networkx_labels (G,pos , font_size =20)nx. draw_networkx_edge_labels (G,pos ,edge_labels = edge_labels , font_size =20)Mwusc A. Mpountourdhc Anlush Diktwn me to NetworkX thc Python 14. Mwusc A. Mpountourdhc Anlush Diktwn me to NetworkX thc Python 15. Ant thc parjeshc twn timn twn barn, oi akmc mporon nasqediasjon me erh anloga twn timn twn barn wc exc:nx. draw_networkx_nodes (G,pos , node_size = 700)edgewidth =[]for (u,v,d) in G. edges ( data = True ):edgewidth . append (d['weight '])nx. draw_networkx_edges (G,pos , edge_color ='b',width = edgewidth )nx. draw_networkx_labels (G,pos , font_size =20)Mwusc A. Mpountourdhc Anlush Diktwn me to NetworkX thc Python 16. Epiplon, mporon na krathjon sto sqdio mno oi akmc me brhmegaltera kpoiac endimeshc timc, p.q., 4:elarge = [(u,v) for (u,v,d) in G. edges ( data = True )if d['weight '] >4]esmall = [(u,v) for (u,v,d) in G. edges ( data = True )if d['weight ']