Voronoi Diagram
Voronoi Diagram
Qué es
Partición del plano en regiones donde cada región contiene todos los puntos más cercanos a un nodo semilla que a cualquier otro. Crea teselas orgánicas.
Para qué sirve
Para visualizar zonas de influencia, áreas de cobertura o proximidad espacial. También usado para enriquecer scatter plots añadiendo regiones de influencia.
Cómo leerlo
Anatomía
La definición es exacta, no aproximada: dado un conjunto de puntos semilla, cada celda es la región del plano formada por todos los puntos más cercanos a esa semilla que a cualquier otra semilla del conjunto. El límite entre dos celdas vecinas —la arista— es, por construcción geométrica, la mediatriz (bisectriz perpendicular) del segmento que une sus dos semillas: todo punto sobre esa línea está exactamente a la misma distancia de ambas, razón por la cual las celdas nunca se superponen ni dejan huecos entre sí. El diagrama completo es el dual geométrico de una triangulación construida sobre el mismo conjunto de puntos: dos estructuras que se derivan matemáticamente una de la otra, y donde una arista existe en una si y solo si las dos celdas correspondientes son vecinas en la otra. La técnica aparece en campos muy distintos entre sí —interpolación de lluvia entre estaciones meteorológicas, análisis de proximidad urbana, biología celular— precisamente porque la pregunta que resuelve, "qué punto está más cerca de aquí", es universal.
Por qué funciona
Fundamento perceptivo
Convierte puntos en áreas, lo que hace que la proximidad espacial sea inmediatamente legible. El área de cada región es inversamente proporcional a la densidad de puntos.
Errores comunes
Requiere familiaridad previa
es difícil de leer sin conocer el concepto, así que añade siempre los puntos semilla y una explicación de qué representa cada región.
Dónde se usa
Contextos de aplicación

Zonas de cobertura de servicios
Cada punto de atención domina la región más cercana a él.

Regiones de influencia de ciudades
El territorio dividido según qué ciudad queda más cerca.

Análisis de proximidad de instalaciones
Detectar zonas mal cubiertas mirando el tamaño de cada celda.
Cómo construirlo
El mismo gráfico, en 11 librerías open source
Cada librería resuelve las mismas decisiones de diseño, como la escala, el espaciado entre barras o la inserción de la etiqueta de valor, de un modo distinto. Algunas las automatizan; otras las dejan explícitas en el código, a criterio de quien lo escribe. Comparar once implementaciones con los mismos datos y el mismo color de marca aísla esa diferencia, que de otro modo queda oculta detrás de estilos visuales distintos.
Qué capital regional queda más cerca, en cualquier punto de Chile
Fuente: Coordenadas geográficas aproximadas de capitales regionales (esquema simplificado)
Territorio más cercano a cada una de 9 capitales regionales de Chile, en un esquema simplificado norte-sur (no una proyección cartográfica exacta): cada celda es el área cuyos puntos están más cerca de esa ciudad que de cualquier otra, la aplicación clásica de un diagrama de Voronoi. d3-delaunay calcula el teselado directo desde las coordenadas (se instaló como dependencia real para esta ficha); scipy.spatial.Voronoi hace el cálculo equivalente en Python, pero sin recortar las celdas a los bordes del lienzo; las demás librerías reutilizan los polígonos ya resueltos y recortados. scipy.spatial.Voronoi SÍ es una función nativa de cálculo, pero no recorta las celdas a los bordes del lienzo —matplotlib solo dibuja los Polygon resultantes.
import matplotlib.pyplot as plt
import matplotlib.patches as mpatches
from scipy.spatial import Voronoi
# scipy.spatial.Voronoi SÍ es una función nativa de cálculo (no de
# dibujo): calcula el teselado igual que d3-delaunay, pero devuelve
# vértices y regiones crudos, sin recorte a los bordes del lienzo --
# matplotlib solo dibuja los Polygon resultantes.
for i, celda in enumerate(celdas):
ax.add_patch(mpatches.Polygon(celda["verts"], facecolor=colores[i], alpha=0.72, edgecolor="white"))
plt.show()No disponible en estas librerías
No tiene un tipo Voronoi nativo, no soporta paths SVG/Path2D crudos, y no expone una API de bajo nivel para rellenar polígonos arbitrarios a mano.
No tiene un mark Voronoi ni una forma directa de rellenar un polígono arbitrario de vértices —esa capacidad existe en Vega (la librería completa), no en Vega-Lite.
Herramientas para construirlo
No-code, desktop y plataformas web, con su licencia visible, abierta o comercial.
Términos relacionados
Gráficos relacionados