NetworkX analysis of my FB graph
# Magic line to ensure plotting happens in Jupyter
%matplotlib inline
# PyPlot is an object-oriented plot interface to matplotlib
import matplotlib.pyplot as plt
# Load up the networkx package
import networkx as nx
Reading a graph with NetworkX is supported with several commands.
g = nx.read_graphml("cbuntain_fb_v2.graphml")
nx.draw(g, with_labels=True)
plt.show()
# Need to use the data=True named argument
print("Nodes w/ data:")
for node in g.nodes(data=True):
print("\tNode:", node[0], node[1]["label"])
Nodes w/ data: Node: n0 m.leigh.cook Node: n1 chris.harrington.7731 Node: n2 greg.bennett.56 Node: n3 kerapolis Node: n4 leslie.harrington.58 Node: n5 carrie.buntain Node: n6 renee.lague.1 Node: n7 profile.php?id=78200736 Node: n8 bruce.buntain Node: n9 stacy.nbro Node: n10 CandioQuinn Node: n11 kmicinski Node: n12 jessica.cline.376 Node: n13 amanda.c.burt Node: n14 LibbyTatum Node: n15 chris.kilroy.9 Node: n16 rachel.eichhorn Node: n17 rosy.rose8 Node: n18 tracey.davies.9674 Node: n19 jordanuhl Node: n20 sarah.weeks.75 Node: n21 karenlboyd Node: n22 rachel.goldstein.54 Node: n23 bonnie.bluml Node: n24 golbeck Node: n25 jcreekmore Node: n26 brenna.noelle Node: n27 yuz207 Node: n28 atragland Node: n29 harringtonol Node: n30 angelaroseparade123 Node: n31 Liz.keener Node: n32 nick.proferes Node: n33 profile.php?id=1225830322 Node: n34 jamey.louise.5 Node: n35 ala.piotrkowicz Node: n36 jen.vanrite Node: n37 haley.allen Node: n38 kelly.allen.315865 Node: n39 pamtard Node: n40 june.ahn Node: n41 rachel.kass Node: n42 molly.hoffmaster.3 Node: n43 mattm401 Node: n44 the.sana.malik Node: n45 matthew.evanusa Node: n46 sarah.kilkowski Node: n47 mitchell.bluml Node: n48 mflap Node: n49 kit.winner Node: n50 alma.sanchez.988 Node: n51 cplaisant Node: n52 amandinne Node: n53 carlea.holljensen Node: n54 zak.glennon Node: n55 lcsarin Node: n56 TimberWerker Node: n57 mike.peter1 Node: n58 MasThyVampyre Node: n59 takyeon Node: n60 sade.ford.5 Node: n61 katharina Node: n62 john.bland.16 Node: n63 benjamindhorne314 Node: n64 christoph.trattner Node: n65 sa.malushte Node: n66 dan.rochowiak Node: n67 BMDeane Node: n68 kerri.sherlock.talbot Node: n69 benjamin.epstein1 Node: n70 brian.brubach Node: n71 Irta01 Node: n72 paul.brinkley.52 Node: n73 sarah.dipasquale.7 Node: n74 x.b.jenkins Node: n75 alex.malozemoff Node: n76 philip.dasler Node: n77 profile.php?id=100012486462654 Node: n78 kat.bunch.73 Node: n79 courtney.stratton Node: n80 glynnis Node: n81 brignerkn Node: n82 dylee Node: n83 mullerb10 Node: n84 Bamaviper1 Node: n85 casey.calamaio Node: n86 parniaz Node: n87 david.kapp.908 Node: n88 claudia.bach.52 Node: n89 jacob.boyce.mcarthur Node: n90 christina.ascani Node: n91 schwa021 Node: n92 alisonxyz Node: n93 adam.burt.543 Node: n94 frances.buntain Node: n95 christine.george.39566 Node: n96 profile.php?id=100014446210937 Node: n97 natalie.whitecook Node: n98 ranliudesign Node: n99 kayleigh.t.pritchett Node: n100 robert.dobbins Node: n101 emily.carpenter Node: n102 courtney.p.keeton Node: n103 ki.shin.9 Node: n104 benalene Node: n105 rachel.fry.58 Node: n106 tsands1 Node: n107 erin.rassier Node: n108 katie.hyrkas Node: n109 jack.jenkins.338211 Node: n110 strictlymike Node: n111 profile.php?id=100006738221615 Node: n112 alaracon Node: n113 dwight.decarme Node: n114 midge.newtonrast Node: n115 nothingnewtome Node: n116 zamira.daw Node: n117 melanie.gates.35 Node: n118 david.montier.35 Node: n119 erin.cook.9883 Node: n120 potreyto Node: n121 darrenkinnaird Node: n122 kristin.williams.5095 Node: n123 jill.hardy Node: n124 jessica.gladstone.98 Node: n125 ben.balser.1 Node: n126 rebecca.mosley.7 Node: n127 brian.mcclimens Node: n128 lauren.orr.35 Node: n129 kristin.bramlett Node: n130 alex.niu1 Node: n131 saveski.martin Node: n132 monaleigh.guha Node: n133 michael.tucker.568 Node: n134 mbarronj Node: n135 katie.kaczmarek.1 Node: n136 lisa.tunstill Node: n137 StephenHBach Node: n138 tonyn.palmello Node: n139 chris.furlough Node: n140 achang4 Node: n141 andrea.smithsell Node: n142 samuel.hokanson Node: n143 angjoo Node: n144 lorelei.dorittyduff Node: n145 elisehorn Node: n146 chromatic.dispersion Node: n147 manaswi.saha Node: n148 chairmanhammer Node: n149 JDough1 Node: n150 jake.cook.3914 Node: n151 fred.dickinson.5 Node: n152 jim.spadaro Node: n153 lnorooz Node: n154 pretsbhargava Node: n155 uran.oh.9 Node: n156 m.adil.yalcin Node: n157 pujara Node: n158 thor.christianson Node: n159 andrew.adrian.144 Node: n160 danielle.treadway Node: n161 spike.anderson Node: n162 lowe300zx Node: n163 kate.knudsen.9275 Node: n164 matt.statham.589 Node: n165 gyeongbae.jung Node: n166 jhatmaker Node: n167 jessicaannelliot Node: n168 christina.cook.507 Node: n169 missrobynthomas Node: n170 rodney.bluml Node: n171 crystal.phillips.50 Node: n172 kotaro.hara Node: n173 jenny.russell1 Node: n174 matthew.mitsui.3 Node: n175 s14asilvia Node: n176 jacob.putman Node: n177 ncantelmo Node: n178 macneal.bennett Node: n179 lynna.ahlschlager Node: n180 erin.mcgrath1 Node: n181 jon.tourville Node: n182 scottingram.scott Node: n183 jwisotsky Node: n184 mital.modi Node: n185 mamacatter Node: n186 elizabeth.delatorre.12 Node: n187 hdelugach Node: n188 sciencebandit Node: n189 profile.php?id=27427660 Node: n190 cynthia.m.trujillo Node: n191 katie.t.macfarlane Node: n192 dxoldman Node: n193 LaughingIsWhatIDoBest Node: n194 tyler.albers.9 Node: n195 briana.mcintire Node: n196 profile.php?id=27420031 Node: n197 kenny.federline Node: n198 drew.gentry.98 Node: n199 ibgnome Node: n200 austin.beck.165470 Node: n201 Fd757 Node: n202 ronni.chancellor Node: n203 danette.milner Node: n204 joescii Node: n205 TheRiegel Node: n206 justinebsmith Node: n207 jackie.smithcashion Node: n208 camilla.lockridge Node: n209 nelson.auner Node: n210 lacey.merritt.1 Node: n211 ktysinger1 Node: n212 mah.aby Node: n213 rcwiles Node: n214 danielle.g.hauck Node: n215 tehdux0r Node: n216 michael.vincent.7927 Node: n217 kealey.bluml Node: n218 aaron.banschick Node: n219 debra.moriarity Node: n220 jon.froehlich Node: n221 AzuriNs Node: n222 ioana.bercea.3 Node: n223 dpauw Node: n224 chocolatesnitches Node: n225 luke.chamberlain.71 Node: n226 vkn13 Node: n227 madey.jay.3 Node: n228 phiwissenschaft Node: n229 ammrogers Node: n230 profile.php?id=4918114 Node: n231 ahlearn Node: n232 sundayvanderver Node: n233 SarahChristineM Node: n234 theoneushouldknow Node: n235 Jon.L.Perreault Node: n236 techfreak713 Node: n237 72720000gi Node: n238 coreyjrosenbloom Node: n239 geoffrey.o.babb Node: n240 SeriouslyMingsly Node: n241 capcom.coleman Node: n242 ajruffin Node: n243 profile.php?id=26519305 Node: n244 christankhall Node: n245 will.sinclair.549 Node: n246 heather.brockman Node: n247 arronirrish Node: n248 crystal.y.smith.9 Node: n249 mandyleeteng Node: n250 bert.klimer Node: n251 ryan.hamilton.77398 Node: n252 patrickegilbert Node: n253 tj.talty Node: n254 rob.ely.90 Node: n255 will.p.elliott Node: n256 matthewkwillson Node: n257 adam.garnick Node: n258 tom.brasnon Node: n259 jschansman Node: n260 john.i.gifford Node: n261 wyers Node: n262 seth.e.farrington Node: n263 jonathan.fincher.71 Node: n264 thejayjacks Node: n265 tyler.cutshall Node: n266 dtysinger1 Node: n267 JCollins86 Node: n268 robert.estes.923 Node: n269 jennifer.torska Node: n270 erin.t.elliott Node: n271 bashwork Node: n272 a.r.braman Node: n273 matt.thomas.50552338 Node: n274 rocketScience85 Node: n275 sarah.roden.71 Node: n276 steven.boyer Node: n277 kurt.stefanie Node: n278 chazzm Node: n279 teacherashley Node: n280 sarah.reeves.370 Node: n281 linda.scavarda Node: n282 jonathan.b.hanks Node: n283 kellylamb Node: n284 danielle.l.stark Node: n285 karina.soucyacker Node: n286 beth.scavarda Node: n287 charles.acker.5 Node: n288 jenniferstellacotton Node: n289 jonathankline82 Node: n290 rachel.gangaware Node: n291 emcolvin Node: n292 totallyoleary Node: n293 janet.harrington.125 Node: n294 CindylouSargent Node: n295 kentonbartlett Node: n296 jennifer.t.mayfield Node: n297 profile.php?id=14832383 Node: n298 karthikb007 Node: n299 sharjt Node: n300 shauntana.mcmillan Node: n301 tasha.rhi Node: n302 robin.dasler Node: n303 mary.mcwhirter.98 Node: n304 joohee.choi1 Node: n305 william.sargent.16 Node: n306 sean.bristow.5 Node: n307 don.newton.79 Node: n308 alexis.evangelos Node: n309 burke.cates Node: n310 adam.loudermilk.9 Node: n311 tracy.hamlin.39 Node: n312 dale.cook.520 Node: n313 sam.cook.35 Node: n314 sara.anderson.123829 Node: n315 cassandra.stang Node: n316 sjmason3525 Node: n317 laura.noblitt.9 Node: n318 matthew.buhl.9 Node: n319 jessica.hatch.142 Node: n320 chris.brown.503645 Node: n321 bolen.tiffany Node: n322 james.threadgill.39 Node: n323 billy.sargent.507 Node: n324 coleta.newton Node: n325 doug.goldstein.75 Node: n326 mspacex Node: n327 steven.saul.10 Node: n328 jennylynnpinson Node: n329 debra.segal.1 Node: n330 daniel.yost.92 Node: n331 mountiedm Node: n332 rpwilsonjr Node: n333 lizzity Node: n334 aaron.norman88 Node: n335 doriangreen Node: n336 andrea.hartman.14 Node: n337 ladydragon324 Node: n338 orianna.demasi.1 Node: n339 jeff.frew1 Node: n340 jeremy.hartman.5245 Node: n341 daniel.cardosi Node: n342 brian.heyer Node: n343 meethumalu Node: n344 sarah.weishampel.7 Node: n345 kristina.laffkas Node: n346 Farnaz.A Node: n347 profile.php?id=653672135 Node: n348 nindoja Node: n349 vassi.cher Node: n350 zhang.weiwei Node: n351 alexander.moreno.75 Node: n352 traceforbes Node: n353 claire.e.capra Node: n354 blythe.brauer Node: n355 greatwhitetyrannosaurusshark Node: n356 evanne.holloway Node: n357 joseph.franke.14 Node: n358 btall95 Node: n359 ottomatic98 Node: n360 profile.php?id=7016469 Node: n361 emily.padgett.355 Node: n362 eric.harris.9659 Node: n363 dan.hallenbeck.9 Node: n364 stacie.merz Node: n365 jennifer.ditman Node: n366 dana.dafter Node: n367 roberto.abreu.79 Node: n368 ken.nevins Node: n369 richard.d.kennedy Node: n370 jay.miller.12327 Node: n371 brandon.ingram.96 Node: n372 karl.grindel Node: n373 david.mcbrayer.9 Node: n374 mark.schramka1 Node: n375 scott.royce.921 Node: n376 ineedarandomname Node: n377 holtn Node: n378 emilie.gilliland Node: n379 pj.scalisi Node: n380 goawaytoday Node: n381 profile.php?id=20506176 Node: n382 kix444 Node: n383 john.parris.733 Node: n384 mgubbe Node: n385 rongjian.lan Node: n386 ShengZha Node: n387 roozbeh.yz Node: n388 juncheng.chen1 Node: n389 bai.wei.372 Node: n390 christoph.schulze.84 Node: n391 matt.coonley Node: n392 joseph.brasher.7 Node: n393 shawn.unangst Node: n394 victoria.douglas.12 Node: n395 imbri Node: n396 issannewton Node: n397 snigdha.chaturvedi.52 Node: n398 piotr.mardziel Node: n399 suzanne.g.roten Node: n400 rose.u.kirby Node: n401 logan.ausderau Node: n402 RayneeDay13 Node: n403 terry.meacham Node: n404 andre.roques.37 Node: n405 drewcamp Node: n406 alex.capps.315 Node: n407 michael.burleson.9 Node: n408 patrick.burdick.12 Node: n409 andy.kirkpatrick.7355 Node: n410 elizabeth.olivares.982 Node: n411 mac.pace.10 Node: n412 ricky.adams.756 Node: n413 thorernstsson Node: n414 heatherpchance Node: n415 cale.thompson.5872 Node: n416 ravi.patel.7549 Node: n417 casey.carden.77 Node: n418 SuperSpud13 Node: n419 karen.e.depierre Node: n420 julie.ramhold.1 Node: n421 stephanie.chrisley Node: n422 katherine.shonesy Node: n423 scott.amacher.3 Node: n424 kelly.callen.52 Node: n425 corrie.clarkson Node: n426 epicguo Node: n427 adam.creel.52 Node: n428 DEMOL1T1ON2287 Node: n429 rob.wilson.902604 Node: n430 angela.goldstein.5 Node: n431 krysta.whitecap Node: n432 matt.frisby.9 Node: n433 jennie.frisby Node: n434 Ting.Zheng86 Node: n435 Ace4101 Node: n436 xaebae.piano Node: n437 matt.weiland.9 Node: n438 omglas3r Node: n439 jonathan.bolden.92 Node: n440 brett.simon.980 Node: n441 will.lucas.378 Node: n442 tackystar Node: n443 justin.anthony.92102 Node: n444 corey.clifton.33 Node: n445 asa.gilliland Node: n446 bnprince1 Node: n447 alison.r.weber Node: n448 jacooley Node: n449 kelly.l.foster.5 Node: n450 kelly.bragan.5 Node: n451 ali.ferrell.5 Node: n452 matt.frisby.313 Node: n453 rachel.gabriel.9 Node: n454 happyyeteng Node: n455 cole.buford.3 Node: n456 andrew.henderson.7568 Node: n457 maria.d.lucena.31 Node: n458 james.nitsch.1 Node: n459 evan.white.1656 Node: n460 julia.cganzi Node: n461 penny3333 Node: n462 anamXO Node: n463 ana.oprescu Node: n464 rafael.suarez.7 Node: n465 ibtgriffin Node: n466 browne.allen Node: n467 brianna.ren Node: n468 julian.grizzard Node: n469 kera.dorsey Node: n470 steven.sheets.129 Node: n471 laura.johnston.33 Node: n472 dale.reese.7 Node: n473 bettiejean.harrisrepasky Node: n474 alyssa.paynter1 Node: n475 kevin.wesley.35 Node: n476 chorlick1 Node: n477 josh.blackmon.73 Node: n478 pikewerker Node: n479 don.sanders.501 Node: n480 seanpcouch Node: n481 matthew.shaper Node: n482 john.maxon.982 Node: n483 els0064 Node: n484 bradley.garrison.75 Node: n485 brittany.king.39 Node: n486 warren.smith.984 Node: n487 Copey13 Node: n488 juanita.l.owen Node: n489 george.preussel Node: n490 Arthur.J.Moore Node: n491 profile.php?id=78203276 Node: n492 sreca.jovanov Node: n493 trentvango Node: n494 bisantchi
labels = {nid:ndict["label"] for nid, ndict in g.nodes(data=True)}
nx.draw(g, with_labels=True, labels=labels)
plt.show()
# different centrality types
centrality_pairs = [
("d_cent", nx.degree_centrality),
("c_cent", nx.closeness_centrality),
("b_cent", nx.betweenness_centrality),
]
# Keep track of different centralities
centrality_map = {}
# For each type of centrality, apply the node attributes
for cent_label, cent_func in centrality_pairs:
centrality = cent_func(g)
centrality_map[cent_label] = centrality
nx.set_node_attributes(g, centrality, cent_label)
for cent_label, cent_vals in centrality_map.items():
print(cent_label)
tops = [(x, cent_vals[x]) for x in sorted(cent_vals, key=cent_vals.get, reverse=True)]
for t in tops[:5]:
print("\t", t, labels[t[0]])
d_cent ('n0', 0.5060728744939271) m.leigh.cook ('n493', 0.012145748987854251) trentvango ('n239', 0.004048582995951417) geoffrey.o.babb ('n369', 0.004048582995951417) richard.d.kennedy ('n434', 0.004048582995951417) Ting.Zheng86 c_cent ('n0', 0.5003800394000031) m.leigh.cook ('n239', 0.25810116656798576) geoffrey.o.babb ('n369', 0.25810116656798576) richard.d.kennedy ('n434', 0.25810116656798576) Ting.Zheng86 ('n1', 0.2540840277887175) chris.harrington.7731 b_cent ('n0', 0.26370400177382136) m.leigh.cook ('n493', 0.006220692940026772) trentvango ('n239', 0.0027154796024231246) geoffrey.o.babb ('n369', 0.0027154796024231246) richard.d.kennedy ('n434', 0.0027154796024231246) Ting.Zheng86
Getting into Gephi brings up a good question.
How do we export a graph from NetworkX?
NetworkX has lots of reading and writing capabilities:
# For simplicity, let's use GraphML
nx.write_graphml(g, "cbuntain_fb_w_centrality.graphml")