Polar Area Chart

Polar Area Chart

Categoría Composición

Qué es

Similar al Nightingale Rose: sectores de igual ángulo donde el área (radio) varía según el valor. Variante más moderna y genérica de la visualización de datos polares.

Para qué sirve

Para datos categóricos donde la disposición circular tiene significado o impacto visual, sin necesariamente implicar ciclicidad.

Cómo leerlo

Anatomía

La versión genérica y moderna del formato de área polar del siglo XIX: mismo principio de ángulo igual y radio variable, pero sin la restricción de representar necesariamente ciclos calendario —doce meses, cuatro estaciones. Hoy aparece sobre todo en dashboards de producto y de business intelligence, sin que exista una aplicación puntual con fecha de origen para esta variante genérica, a diferencia de casi todas las demás fichas de este catálogo: es una generalización de herramienta, no una invención con un momento único. Lo que sí tiene una explicación puramente geométrica, sin necesidad de referencia histórica, es su principal problema perceptivo: si el radio de un gajo crece de forma lineal con el valor, su área —que es lo que el ojo compara primero— crece con el cuadrado del radio. Duplicar el valor más que duplica la superficie visual, exagerando sistemáticamente las diferencias entre categorías grandes y pequeñas, el motivo por el que conviene desconfiar de este chart cuando los valores entre categorías difieren mucho.

Red de un aro de básquetbol fotografiada desde abajo, con los hilos radiando desde el borde circular hacia el centro en largos irregulares: la misma anatomía de un polar area chart, donde cada radio se extiende una distancia distinta desde un mismo centro

Por qué funciona

Fundamento perceptivo

El formato radial atrae la atención y es visualmente distintivo en presentaciones y reportes. Funciona bien cuando las diferencias entre categorías son marcadas.

Errores comunes

  • Área cuadrática como el Nightingale Rose

    crece con el cuadrado del radio, así que para comparaciones precisas las barras son siempre superiores.

Dónde se usa

Contextos de aplicación

Métricas de rendimiento por categoría
01

Métricas de rendimiento por categoría

Sectores iguales en ángulo, radio proporcional al valor de cada área.

Distribución de recursos por área
02

Distribución de recursos por área

Cuánto recibe cada área, en un formato circular compacto.

Resultados de una encuesta por dimensión
03

Resultados de una encuesta por dimensión

Cada dimensión evaluada es un sector; su radio, el puntaje.

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.

Matplotlib License (estilo BSD)
Matplotlib: gráfico de barras

bar() funciona directo sobre un Axes polar (projection="polar") —es la misma función que un gráfico de barras cartesiano, solo que el sistema de coordenadas del Axes es distinto.

import matplotlib.pyplot as plt
import numpy as np

items = [
    {"label": "Nvidia", "value": 4.56, "color": "#490827"},
    {"label": "Apple", "value": 3.95, "color": "#600A32"},
    {"label": "Alphabet", "value": 3.83, "color": "#760D3E"},
    {"label": "Microsoft", "value": 3.53, "color": "#8D2236"},
    {"label": "Amazon", "value": 2.49, "color": "#A4362E"},
    {"label": "Meta", "value": 1.4, "color": "#BB4B26"},
    {"label": "Tesla", "value": 1.1, "color": "#D2601F"},
]
n = len(items)

# bar() funciona directo sobre un Axes polar (projection="polar") -- es
# la misma funcion que un grafico de barras cartesiano, solo que el
# sistema de coordenadas del Axes es distinto.
fig = plt.figure(figsize=(5.5, 5.5))
ax = fig.add_subplot(111, polar=True)
angulos = [2 * np.pi * i / n for i in range(n)]
ax.bar(angulos, [it["value"] for it in items], width=2 * np.pi / n * 0.95,
       color=[it["color"] for it in items], align="edge")
ax.set_xticks(angulos); ax.set_xticklabels([it["label"] for it in items])
plt.show()

No disponible en estas librerías

Observable Plot

No tiene un sistema de coordenadas polares ni una marca radial —la misma limitación que descarta la torta y el gauge deja sin base cualquier gráfico polar.

Plotnine

Esta versión no implementa coord_polar() —la misma ausencia que descarta la torta, el donut y el gauge también descarta el polar area chart.

Herramientas para construirlo

No-code, desktop y plataformas web, con su licencia visible, abierta o comercial.

No-code
Observable Freemium
JavaScript
D3.js Open SourceECharts Open SourceChart.js Open SourceApexCharts Open Source
Python
Plotly Open Source
R
ggplot2 Open Source

Con datos reales

Ejemplos de uso.

Las siete gigantes tecnológicas

Capitalización bursátil, abril 2026 (billones de dólares).

Fuente: CompaniesMarketCap / Visual Capitalist

Gráficos relacionados

Variantes y alternativas cercanas.