Gantt Chart

Gantt Chart

Categoría Evolución

Qué es

Barras horizontales sobre un eje temporal donde la posición indica el inicio y la longitud indica la duración de cada tarea. Inventado por Henry Gantt (1910).

Para qué sirve

Para planificar, coordinar y comunicar cronogramas de proyectos mostrando qué tareas ocurren en paralelo y cuál es la ruta crítica.

Cómo leerlo

Anatomía

Este formato de diagrama de barras de programación surgió de forma independiente en más de un lugar a comienzos del siglo XX, en el contexto de la gestión industrial moderna, y se popularizó de forma masiva al usarse para coordinar producción a gran escala durante la Primera Guerra Mundial. La posición de cada barra en el eje horizontal —dónde empieza— es, en sí misma, el dato principal: es una de las pocas anatomías de este catálogo donde el eje X no mide una magnitud sino que ancla directamente una fecha de calendario. Una tarea de duración cero no es una barra invisible sino un hito, y se dibuja como rombo; y sin las flechas de dependencia que conectan el fin de una tarea con el inicio de la siguiente, el diagrama muestra fechas pero no explica por qué están ordenadas así —un cronograma, no un plan.

Tablones de madera apilados en filas, cada uno desplazado hacia adelante respecto al anterior en un patrón de escalera: la misma anatomía de un gantt chart, barras apiladas por fila donde cada una comienza en un punto distinto del eje horizontal

Por qué funciona

Fundamento perceptivo

El estándar universal de gestión de proyectos. Permite ver de un vistazo qué está en paralelo, qué es secuencial y cuánto tiempo queda.

Errores comunes

  • Sin dependencias pierde valor

    añade siempre las dependencias entre tareas con flechas, porque sin ellas el Gantt pierde su principal valor analítico para gestión de proyectos.

Dónde se usa

Contextos de aplicación

Cronograma de una obra
01

Cronograma de una obra

Cada faena es una barra entre su inicio y su fin, con la fecha de hoy marcada.

Planificación de un proyecto de diseño
02

Planificación de un proyecto de diseño

Tareas superpuestas y dependencias visibles en el calendario.

Roadmap de un producto
03

Roadmap de un producto

Qué se construye cuándo, y qué avanza en paralelo.

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

broken_barh() es un método DEDICADO de matplotlib para exactamente este patrón: una lista de (inicio, duración) por fila —el gantt chart es, literalmente, el caso de uso que le da nombre a la función.

import matplotlib.pyplot as plt
import matplotlib.dates as mdates
from datetime import datetime

phases = [
    {"name": "Inscripción PAES Regular", "start": "2026-06-01", "end": "2026-07-22", "color": "#9B928C"},
    {"name": "PAES Regular: rendición y resultados", "start": "2026-11-30", "end": "2027-01-04", "color": "#760D3E"},
    {"name": "Postulación", "start": "2027-01-04", "end": "2027-01-07", "color": "#D2601F"},
    {"name": "Selección y matrícula", "start": "2027-01-18", "end": "2027-01-21", "color": "#490827"},
]

# broken_barh() es un metodo DEDICADO de matplotlib para exactamente
# este patron: una lista de (inicio, duracion) por fila -- el gantt
# chart es, literalmente, el caso de uso que le da nombre a la funcion.
fig, ax = plt.subplots(figsize=(7.4, 3))
for i, p in enumerate(phases):
    start = mdates.date2num(datetime.strptime(p["start"], "%Y-%m-%d"))
    end = mdates.date2num(datetime.strptime(p["end"], "%Y-%m-%d"))
    ax.broken_barh([(start, end - start)], (len(phases) - i - 1, 0.7), facecolors=p["color"])
ax.xaxis_date()
ax.xaxis.set_major_formatter(mdates.DateFormatter("%b %y"))
plt.show()

Herramientas para construirlo

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

No-code
Flourish FreemiumExcel ComercialPower BI ComercialObservable Freemium
JavaScript
D3.js Open SourceECharts Open SourceHighcharts Comercial
Python
Plotly Open SourceMatplotlib Open Source

Con datos reales

Ejemplos de uso.

El calendario de la Admisión 2027, paso a paso

Proceso de admisión a la educación superior en Chile (DEMRE). Junio 2026 a enero 2027.

Fuente: DEMRE, Calendario del Proceso de Admisión 2027

Gráficos relacionados

Variantes y alternativas cercanas.