Who matters in the underworld, and what breaks when they're gone

The same Week 3 playbook — five centrality measures, directed vs. undirected rankings, a general shortest-path explorer, a node-removal fragmentation test, and the tightest cliques — run over Wikipedia's Marvel supervillains network instead of the heroes: 370 nodes where 43 villains nobody links to sit outside a 323-node giant component, and Purple Man — not the biggest hub — turns out to be the single worst point to disappear.

What does it mean to be important in a network?

↑

"Important" is not one thing. A villain can be important because a lot of other villains link to them, because they sit close to everyone else, because they're the bridge that holds two otherwise-unconnected parts of the underworld together, or because the important villains happen to be the ones linking to them. Those are four different, precisely defined questions — and on this network they don't always agree on an answer.

Everything below runs on the same 370-villain, 1,136-edge frozen crawl from data/Marvel_Comics_supervillains/ that the Week 2 supervillains post used — no new data, no team or decade labels. The giant component is a stretchier world than the heroes': the category articles mostly share one Rogue's Gallery each (Venom's page links to a lot of Spider-Man antagonists; Apocalypse's to X-Men antagonists), so hubs sit on both sides of the hero/villain divide — Hulk, Deadpool and Doctor Doom loom large here too, alongside genuine villains like Norman Osborn and Magneto. Just paths, four centrality measures plus PageRank, degree-preserving-shuffle null models, node removal, and maximal cliques, computed offline in analysis/build_week3_villains.py and loaded frozen from data/week3/week3_villains_summary.json. The three big interactives below recompute nothing expensive live — they look numbers up and draw them; the one live computation left in the browser is the shortest-path search in the Six Degrees explorer, which is cheap enough to run per click.

Who is important?

↑

Five measures, five different definitions of "matters." Switch between them below — the ranking changes every time, because each one is answering a different question. Every measure can be computed on two graphs: the undirected giant component (323 villains, treating a link either direction as a connection) and the full directed network (370 villains, following Wikipedia's links exactly as written). Use the Measure and Scope switches together to compare.

The top 15 by the selected measure, on the left; the same villains sized and colored on the network, on the right (the rest of the 323-villain giant component sits dim in the background so the shape stays stable across measures). Click a name — in the list or on the network — to inspect that villain, including a null-model comparison where one was computed.

    Click a villain above to inspect their numbers.

    Values computed once, offline, in analysis/build_week3_villains.py — every measure in both scopes with NetworkX: undirected variants on the giant component, directed variants on the full graph (degree as in+out total, closeness/harmonic following arrows outward), PageRank (α = 0.85) both ways — and loaded frozen from data/week3/week3_villains_summary.json.

    Directed vs. undirected: it depends which way you look

    ↑

    Wikipedia links have a direction, and treating the network as undirected throws that away. Hulk's article is linked from 58 other villains' pages but itself links out to only — a huge asymmetry that changes the answer once "importance" has to follow arrows.

    Recomputing betweenness with arrows respected — a shortest path only counts if it can actually be walked in the link direction — reshuffles the ranking. Norman Osborn overtakes Hulk for the top spot, and three specialists surge: Ultron (9 → 5), Super-Adaptoid (13 → 6) and Thunderbolt Ross (43 → 10):

    Undirected betweenness rank → directed betweenness rank

      PageRank surfaces villains outside the in-degree top 10

        That second list is PageRank's actual mechanism showing through: Hulk links out to only villains, so each one inherits an unusually large slice of his vote — which is how villains like Thunderbolt Ross (PageRank #5 against an in-degree rank of #16), the Beyonder and Dracula outrank villains with a higher raw in-degree.

        Reading this right: neither ranking is "more correct" — they're answers to different questions. Undirected betweenness asks who bridges the underworld treating every mention as mutual; directed betweenness asks who bridges it exactly as written, link by link.

        Six Degrees of Marvel Villainy

        ↑

        Pick any two villains from the 323-villain giant component (the other 47 sit outside it — see Week 2) and find the shortest chain between them. Switch between treating links as mutual or following them exactly as written; the two modes can disagree, including about whether a path exists at all.

        The network below colors every villain by BFS distance from the source (0, 1, 2, 3…); once a target is chosen, the shortest path between them animates in and the rest of the network fades back. Everything here is computed live in your browser from the raw villains edge list — a single BFS on a 323-node graph is effectively instant.

        Choose a source villain above.

        Villain list, positions and adjacency all come from data/Marvel_Comics_supervillains/; the layout coordinates come from the same seeded spring_layout precomputed in analysis/build_week3_villains.py that every network view on this page reuses, so the shape stays stable as you explore.

        Who holds the underworld together?

        ↑

        High centrality and structural importance aren't automatically the same thing — a villain can rack up connections without their removal actually breaking anything. To test it directly: remove villains one at a time, in order of degree, in order of betweenness, or at random, and watch the giant component shrink.

        removed = 0

        Precomputed offline for every strategy, all 323 removal steps — the browser only plays the numbers back and redraws. The chart shows all three strategies at once for comparison; the network shows the currently-selected strategy, with removed villains faded out.

        Removal orders and the resulting giant-component size at every step come from fragmentation in data/week3/week3_villains_summary.json, computed once offline.
        Interactive game · same 370-villain network

        Save the Supervillain Network →

        A hero is taking villains offline. You get three attempts to identify the villains whose removal fragments the network the most — then see how your picks measure up against the real degree, betweenness and random-removal numbers above.

        The tightest circles

        ↑

        A clique is a group where everyone is directly connected to everyone else — for k members, that's k(k−1)/2 links, all of them present. A maximal clique is one that can't be grown any further: no other villain is connected to every single member. NetworkX's find_cliques() only ever returns maximal cliques, so picking "4-cliques" below means groups that max out at exactly 4 — never a 4-member slice carved out of a bigger group (a slice like that could always be grown back, so it would never come back as its own maximal clique).

        Every maximal clique of the selected size is highlighted at once, in the same color; hover or click one in the list to bring just that clique forward. The rest of the giant component stays visible, dimmed, for context.

          Hover or click a clique to see its members.

          Maximal cliques enumerated once offline with networkx.find_cliques() on the undirected giant component, stored in data/week3/week3_villains_summary.json.

          What the measurements show

          ↑

          Observed:

          Interpretation:

          Different centrality measures are not competing estimates of one true "importance" — they are different, equally valid questions, and a network with a heavy-tailed degree distribution will always show large disagreements between them precisely where that distribution is most extreme (its handful of hubs). Directedness is not a footnote here: it hands the crown to Norman Osborn, because Wikipedia's own linking behavior is itself asymmetric (see Hulk's 11 outgoing links against 58 incoming). And the network's biggest structural weakness is its own villain — Purple Man — invisible in the degree and PageRank rankings until you a) ask about shortest paths in edge direction or b) actually delete him.

          Limitations:

          📎 Reproducing this: every number above comes from analysis/build_week3_villains.py, run against the same frozen data/Marvel_Comics_supervillains/ crawl the Week 2 supervillains post used, writing data/week3/week3_villains_summary.json. The centrality, fragmentation and clique interactives read that file directly; the Six Degrees explorer is the one piece that recomputes live, straight from the raw edge list, since it has to answer an arbitrary villain pair chosen in the browser.
          ← Back to all weeks