🧩
New! Render PlantUML diagrams directly inside GitHub with our official browser extension — No server. No tokens. No tracking. Zero permissions but clipboard. — Try it out and let us know what you think!

Diagrama de Gantt

El diagrama de Gantt es una potente herramienta para la gestión de proyectos. Representa visualmente el calendario de un proyecto, permitiendo a los gestores y miembros del equipo ver de un vistazo las fechas de inicio y fin de todo el proyecto. El diagrama muestra las tareas o actividades a lo largo de un eje temporal horizontal, indicando la duración de cada tarea, su secuencia y cómo se solapan o se ejecutan simultáneamente.

En un diagrama de Gantt, cada tarea se representa mediante una barra, cuya longitud y posición reflejan la fecha de inicio, la duración y la fecha de finalización de la tarea. Este formato facilita la comprensión de las dependencias entre tareas, cuando una tarea debe completarse antes de que otra pueda comenzar. Además, los diagramas de Gantt pueden incluir hitos, que son acontecimientos u objetivos significativos en el calendario del proyecto, marcados como un símbolo distinto.

En el contexto de la creación de diagramas de Gantt, PlantUML ofrece varias ventajas. Ofrece un enfoque basado en texto para la creación de diagramas, lo que facilita el seguimiento de los cambios mediante sistemas de control de versiones. Este enfoque es especialmente beneficioso para los equipos que ya están acostumbrados a entornos de codificación basados en texto. La sintaxis de PlantUML para diagramas de Gantt es sencilla, lo que permite realizar modificaciones y actualizaciones rápidas en el calendario del proyecto. Además, la integración de PlantUML con otras herramientas y su capacidad para generar diagramas dinámicamente a partir de texto lo convierten en una opción versátil para los equipos que buscan automatizar y agilizar su documentación de gestión de proyectos. El uso de PlantUML para diagramas de Gantt combina así la claridad y eficacia de la planificación visual de proyectos con la flexibilidad y el control de un sistema basado en texto.

Declaración de tareas

El Gantt se describe en lenguaje natural, utilizando frases muy sencillas (sujeto-verbo-complemento).

Tareas definidas mediante corchetes.

Carga de trabajo

La carga de trabajo de cada tarea se especifica mediante el verbo requires, indicando la cantidad de trabajo necesaria en términos de días.

Una semana suele entenderse como un lapso de siete días. Sin embargo, en contextos en los que ciertos días se designan como "cerrados" (como los fines de semana), una semana puede redefinirse en términos de días "no cerrados". Por ejemplo, si el sábado y el domingo están marcados como cerrados, entonces una semana en este contexto equivaldrá a una carga de trabajo de cinco días, correspondientes a los días laborables restantes.

Inicio

Su inicio se define utilizando el verbo start:

[Ref. para el formulario D+nn: QA-14494]

Fin

Su final se define utilizando el verbo end:

Inicio/Fin

Es posible definir ambos de forma absoluta, especificando fechas:

One-line declaration (with the and conjunction)

It is possible to combine declaration on one line with the and conjunction.

Adding constraints

It is possible to add constraints between tasks.

Short names or alias

It is possible to define short name for tasks with the as keyword.

Tasks with same name

[Starting with V1.2024.6,] it is possible to have multiple tasks with same name.

[Ref. QA-12176 and GH-1809]

Customize colors

It is also possible to customize colors with is colored in.

Completion status

Adding completion depending percentage

You can set the completion status of a task, by the command:

Change colour of completion (by style)

[Ref. QA-8297]

Change colour of undone part of Task (by style)

[Ref. QA-15299]

Milestone

You can define Milestones using the happen verb.

Relative milestone (use of constraints)

Absolute milestone (use of fixed date)

Milestone of maximum end of tasks

[Ref. QA-10764]

Hyperlinks

You can add hyperlinks to tasks.

Calendar

You can specify a starting date for the whole project. By default, the first task starts at this date.

Coloring days

It is possible to add colors to some days.

Changing scale

You can change scale for very long project, with one of those parameters: and one of the values:

(See QA-11272, QA-9041 and QA-10948)

Daily (by default)

Weekly

Monthly

Quarterly

Yearly

Date range with between

Without date range

With date range

Zoom (example for all scale)

You can change zoom, with the parameter:

Zoom on daily (default) scale

[Ref. QA-13725]

Zoom on weekly scale

Zoom on monthly scale

Zoom on quarterly scale

Zoom on yearly scale

Weekscale with Weeknumbers or Calendar Date

With Weeknumbers (by default)

With Weeknumbers (starting from 1)

[Ref. GH-525]

With specific Weeknumbers (starting from n [including negative integer])

[Ref. GH-2202]

With Calendar Date

[Ref. QA-11630]

Change first day of week

[Ref. QA-11630]

Close day

It is possible to close some day.

Then it is possible to open some closed day.

Definition of a week depending of closed days

A week is a synonym for how many non-closed days are in a week, as:

So if you specify Saturday and Sunday as closed, a week will be equivalent to 5 days, as:

[Ref. QA-13434]

Working days

It is possible to manage working days.

[Ref. QA-16188]

Simplified task succession

It's possible to use the then keyword to denote consecutive tasks.

You can also use arrow ->

Working with resources

You can affect tasks on resources using the on keyword and brackets for resource name.

Multiple resources can be assigned to a task:

Resources can be marked as off on specific days:

Hide resources

Without any hiding (by default)

Hide resources names

You can hide resources names and percentage, on tasks, using the hide resources names keywords.

Hide resources footbox

You can also hide resources names on bottom of the diagram using the hide resources footbox keywords.

Hide the both (resources names and resources footbox)

You can also hide the both.

Horizontal Separator

You can use -- to separate sets of tasks.

Vertical Separator

You can add Vertical Separators with the syntax: Separator just [at].

[Ref. QA-16247]

Complex example

It also possible to use the and conjunction.

You can also add delays in constraints.

Comments

As is mentioned on Common Commands page:
Everything that starts with simple quote ' is a comment.

You can also put comments on several lines using /' to start and '/ to end.
(i.e.: the first character (except space character) of a comment line must be a simple quote ')

Using style

Without style (by default)

With style

You can use style to change rendering of elements.

[Ref. QA-10835, QA-12045, QA-11877 and PR-438]

With style (full example)

[Ref. QA-13570, QA-13672]

DONE
Thanks for style for Separator and all style for Arrow (thickness...)

Clean style

With style, you can also clean a Gantt diagram (showing tasks, dependencies and relative durations only - but no actual start date and no actual scale):
[Ref. QA-13971]

Or:

[Ref. QA-13464]

Add notes

Example with overlap.

DONE
Thanks for correction (of #386 on v1.2020.18) when overlapping

Pause tasks

Change link colors

You can change link colors:

[Ref. QA-13693]

Tasks or Milestones on the same line

You can put Tasks or Milestones on the same line, with this syntax:

Highlight today

Task between two milestones

Grammar and verbal form

Verbal form Example
[T] starts
[M] happens

Add title, header, footer, caption or legend

(See also: Common commands)

Add color on legend

[Ref. QA-19021]

Removing Foot Boxes (example for all scale)

You can use the hide footbox keywords to remove the foot boxes of the gantt diagram (as for sequence diagram).

Examples on:

Language of the calendar

You can choose the language of the Gantt calendar, with the language <xx> command where <xx> is the ISO 639 code of the language.

English (en, by default)

Deutsch (de)

Japanese (ja)

Chinese (zh)

Korean (ko)

Delete Tasks or Milestones

You can mark some Tasks or Milestones as deleted instead of normally completed to distinguish tasks that may possibly have been discarded, postponed or whatever.

[Ref. QA-9129]

Start a project, a task or a milestone a number of days before or after today

You can start a project, a task or a milestone a number of days before or after today, using the builtin functions %now and %date:

[Ref. QA-16285]

Change Label position

The labels are near elements (by default)

To change the label position, you can use the command label:

Label on first column

Label on last column

[Ref. QA-12433]

Definition of a month (30 days)

A month is a synonym for 30 days.

[Ref. QA-14494]