chart
hive plot
Network whose nodes sit on radial axes according to their attributes.
hive plot
Réseau dont les nœuds se placent sur des axes rayonnants selon leurs attributs.
Proposé par Krzywinski pour éviter la « pelote » des grands réseaux : la position d'un nœud dépend de ses attributs et non d'un algorithme de mise en page.
Classification
- chart
- networks and trees › linear networks
- flow
- the name evokes: nature
Channels
position on unaligned scale; main: value of a node attribute along its axis
spatial region; main: node class (its axis)
color hue; secondary: link type
Attestation and synonyms
- French term: Common usage, not attested by a source
- English definition: Atlas of knowledge: anyone can map
Scientific literature
OpenAlex: 32 papers since 2013, 25% in the last five years; mostly in Computer Science, Biochemistry, Genetics and Molecular Biology, Medicine
Seminal references
R packages
- R
ggraph::geom_edge_hive(); GitHub 1 121 stars; last commit 2025-08 avec la disposition « hive » de ggraph() - R
HiveR::plotHive(); GitHub 75 stars; last commit 2024-07; paper (8 citations)
R code of the ggplot2 example
library(ggplot2)
library(dplyr)
library(igraph)
library(ggraph)
## Friendships named in 1958. One axis per group of boys found by the Louvain
## method, split in two so that ties inside a group show between the twin
## axes. The groups only spread the boys out: Louvain maximises the ties
## inside them. A boy's distance from the centre is the number of classmates
## who name him, on the same scale for every axis.
boys <- sort(unique(c(highschool$from, highschool$to)))
ties <- highschool |>
filter(year == 1958) |>
distinct(from, to)
named <- graph_from_data_frame(ties, vertices = data.frame(name = boys))
named <- delete_vertices(named, degree(named) == 0)
set.seed(1)
louvain <- membership(cluster_louvain(as_undirected(named, mode = "collapse"), resolution = 0.4))
V(named)$clique <- paste("Group", match(louvain, unique(louvain)))
V(named)$named_by <- degree(named, mode = "in")
p <- ggraph(named, layout = "hive", axis = clique, sort.by = named_by,
use.numeric = TRUE, normalize = FALSE, split.axes = "all") +
geom_edge_hive(colour = "#a6a6a6", edge_width = 0.3, edge_alpha = 0.6) +
geom_axis_hive(colour = "#535353", linewidth = 0.4, label = FALSE) +
geom_node_point(aes(fill = clique), shape = 21, colour = "white", stroke = 0.2, size = 1.6) +
scale_fill_manual(values = unname(lex_colors)) +
coord_equal(xlim = c(-2, 2), ylim = c(-0.85, 1.1), clip = "off") +
labs(title = "One boy is named by 15 classmates, most by three or fewer",
subtitle = "High school friendships, 1958: one pair of axes per group of boys, one dot per boy, set farther out the more classmates name him; links join friends",
caption = "Data: Coleman 1964, via the ggraph R package") +
theme_lex_viz(grid = "", arrows = "") +
theme(legend.position = "none", axis.text = element_blank(), axis.title = element_blank())Sources (5)
2 occurrences in the corpus
Cite this entry
Stable addresshttps://dataviz.adrientaudiere.com/en/term/hive-plot.html
ReferenceTaudière Adrien. 2026. hive plot. In Visualization Vocabulary, version 1.0.0. IdEst. https://dataviz.adrientaudiere.com/en/term/hive-plot.html
BibTeX
@incollection{taudiere2026-hive-plot,
author = {Taudière, Adrien},
title = {hive plot},
booktitle = {Visualization Vocabulary},
year = {2026},
version = {1.0.0},
publisher = {IdEst},
url = {https://dataviz.adrientaudiere.com/en/term/hive-plot.html},
note = {CC0 1.0}
}Page created on 2026-11-02. Text last changed on 2026-11-02. Images last changed on 2026-11-12. Numbers computed on 2026-10-22.