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.
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.
🎉 Copied!
|
@startgantt
[Prototype design] requires 15 days
[Test prototype] requires 10 days
-- All example --
[Task 1 (1 day)] requires 1 day
[T2 (5 days)] requires 5 days
[T3 (1 week)] requires 1 week
[T4 (1 week and 4 days)] requires 1 week and 4 days
[T5 (2 weeks)] requires 2 weeks
@endgantt
|
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
:
🎉 Copied!
|
@startgantt
[Prototype design] requires 15 days
[Test prototype] requires 10 days
Project starts 2020-07-01
[Prototype design] starts 2020-07-01
[Test prototype] starts 2020-07-16
@endgantt
|
🎉 Copied!
|
@startgantt
[Prototype design] requires 15 days
[Test prototype] requires 10 days
[Prototype design] starts D+0
[Test prototype] starts D+15
@endgantt
|
[Ref. para el formulario D+nn
: QA-14494]
Fin
Su final se define utilizando el verbo
end
:
🎉 Copied!
|
@startgantt
[Prototype design] requires 15 days
[Test prototype] requires 10 days
Project starts 2020-07-01
[Prototype design] ends 2020-07-15
[Test prototype] ends 2020-07-25
@endgantt
|
🎉 Copied!
|
@startgantt
[Prototype design] requires 15 days
[Test prototype] requires 10 days
[Prototype design] ends D+14
[Test prototype] ends D+24
@endgantt
|
Inicio/Fin
Es posible definir ambos de forma absoluta, especificando fechas:
🎉 Copied!
|
@startgantt
Project starts 2020-07-01
[Prototype design] starts 2020-07-01
[Test prototype] starts 2020-07-16
[Prototype design] ends 2020-07-15
[Test prototype] ends 2020-07-25
@endgantt
|
🎉 Copied!
|
@startgantt
[Prototype design] starts D+0
[Test prototype] starts D+15
[Prototype design] ends D+14
[Test prototype] ends D+24
@endgantt
|
It is possible to combine declaration on one line with the
and
conjunction.
🎉 Copied!
|
@startgantt
Project starts 2020-07-01
[Prototype design] starts 2020-07-01 and ends 2020-07-15
[Test prototype] starts 2020-07-16 and requires 10 days
@endgantt
|
It is possible to add constraints between tasks.
🎉 Copied!
|
@startgantt
[Prototype design] requires 15 days
[Test prototype] requires 10 days
[Test prototype] starts at [Prototype design]'s end
@endgantt
|
🎉 Copied!
|
@startgantt
[Prototype design] requires 10 days
[Code prototype] requires 10 days
[Write tests] requires 5 days
[Code prototype] starts at [Prototype design]'s end
[Write tests] starts at [Code prototype]'s start
@endgantt
|
It is possible to define short name for tasks with the
as
keyword.
🎉 Copied!
|
@startgantt
[Prototype design] as [D] requires 15 days
[Test prototype] as [T] requires 10 days
[T] starts at [D]'s end
@endgantt
|
[Starting with V1.2024.6,] it is possible to have multiple tasks with same name.
🎉 Copied!
|
@startgantt
Project starts 2020-11-08
[Task 7 days] as [T7] starts at 2020-11-09
[T7] ends at 2020-11-15
[Task 7 days] as [T7bis] starts at 2020-11-09
[T7bis] ends at 2020-11-15
@endgantt
|
🎉 Copied!
|
@startgantt
[SameTaskName] as [T1] lasts 7 days and is colored in pink
[SameTaskName] as [T2] lasts 3 days and is colored in orange
[T1] -> [T2]
@endgantt
|
[Ref. QA-12176 and GH-1809]
It is also possible to customize
colors with
is colored in
.
🎉 Copied!
|
@startgantt
[Prototype design] requires 13 days
[Test prototype] requires 4 days
[Test prototype] starts at [Prototype design]'s end
[Prototype design] is colored in Fuchsia/FireBrick
[Test prototype] is colored in GreenYellow/Green
@endgantt
|
Adding completion depending percentage
You can set the completion status of a task, by the command:
is xx% completed
is xx% complete
🎉 Copied!
|
@startgantt
[foo] requires 21 days
[foo] is 40% completed
[bar] requires 30 days and is 10% complete
@endgantt
|
Change colour of completion (by style)
[Ref. QA-8297]
Change colour of undone part of Task (by style)
🎉 Copied!
|
@startgantt
<style>
ganttDiagram {
task {
BackGroundColor GreenYellow
LineColor Green
}
undone {
BackGroundColor red
}
}
</style>
[foo] lasts 21 days
[foo] is 40% completed
[bar] lasts 30 days and is 10% complete
@endgantt
|
[Ref. QA-15299]
You can define Milestones using the
happen
verb.
Relative milestone (use of constraints)
🎉 Copied!
|
@startgantt
[Test prototype] requires 10 days
[Prototype completed] happens at [Test prototype]'s end
[Setup assembly line] requires 12 days
[Setup assembly line] starts at [Test prototype]'s end
@endgantt
|
Absolute milestone (use of fixed date)
🎉 Copied!
|
@startgantt
Project starts 2020-07-01
[Test prototype] requires 10 days
[Prototype completed] happens 2020-07-10
[Setup assembly line] requires 12 days
[Setup assembly line] starts at [Test prototype]'s end
@endgantt
|
Milestone of maximum end of tasks
🎉 Copied!
|
@startgantt
[Task1] requires 4 days
then [Task1.1] requires 4 days
[Task1.2] starts at [Task1]'s end and requires 7 days
[Task2] requires 5 days
then [Task2.1] requires 4 days
[MaxTaskEnd] happens at [Task1.1]'s end
[MaxTaskEnd] happens at [Task1.2]'s end
[MaxTaskEnd] happens at [Task2.1]'s end
@endgantt
|
[Ref. QA-10764]
You can add hyperlinks to tasks.
🎉 Copied!
|
@startgantt
[task1] requires 10 days
[task1] links to [[http://plantuml.com]]
@endgantt
|
You can specify a starting date for the whole project. By default, the first task starts at this date.
🎉 Copied!
|
@startgantt
Project starts the 20th of september 2017
[Prototype design] as [TASK1] requires 13 days
[TASK1] is colored in Lavender/LightBlue
@endgantt
|
It is possible to add
colors to some days.
🎉 Copied!
|
@startgantt
Project starts the 2020/09/01
2020/09/07 is colored in salmon
2020/09/13 to 2020/09/16 are colored in lightblue
[Prototype design] as [TASK1] requires 22 days
[TASK1] is colored in Lavender/LightBlue
[Prototype completed] happens at [TASK1]'s end
@endgantt
|
You can change scale for very long project, with one of those parameters:
- printscale
- ganttscale
- projectscale
and one of the values:
- daily (by default)
- weekly
- monthly
- quarterly
- yearly
(See QA-11272, QA-9041 and QA-10948)
Daily (by default)
🎉 Copied!
|
@startgantt
saturday are closed
sunday are closed
Project starts the 1st of january 2021
[Prototype design end] as [TASK1] requires 19 days
[TASK1] is colored in Lavender/LightBlue
[Testing] requires 14 days
[TASK1]->[Testing]
2021-01-18 to 2021-01-22 are named [End's committee]
2021-01-18 to 2021-01-22 are colored in salmon
@endgantt
|
Weekly
🎉 Copied!
|
@startgantt
printscale weekly
saturday are closed
sunday are closed
Project starts the 1st of january 2021
[Prototype design end] as [TASK1] requires 19 days
[TASK1] is colored in Lavender/LightBlue
[Testing] requires 14 days
[TASK1]->[Testing]
2021-01-18 to 2021-01-22 are named [End's committee]
2021-01-18 to 2021-01-22 are colored in salmon
@endgantt
|
🎉 Copied!
|
@startgantt
printscale weekly
Project starts the 20th of september 2020
[Prototype design] as [TASK1] requires 130 days
[TASK1] is colored in Lavender/LightBlue
[Testing] requires 20 days
[TASK1]->[Testing]
2021-01-18 to 2021-01-22 are named [End's committee]
2021-01-18 to 2021-01-22 are colored in salmon
@endgantt
|
Monthly
🎉 Copied!
|
@startgantt
projectscale monthly
Project starts the 20th of september 2020
[Prototype design] as [TASK1] requires 130 days
[TASK1] is colored in Lavender/LightBlue
[Testing] requires 20 days
[TASK1]->[Testing]
2021-01-18 to 2021-01-22 are named [End's committee]
2021-01-18 to 2021-01-22 are colored in salmon
@endgantt
|
Quarterly
🎉 Copied!
|
@startgantt
projectscale quarterly
Project starts the 20th of september 2020
[Prototype design] as [TASK1] requires 130 days
[TASK1] is colored in Lavender/LightBlue
[Testing] requires 20 days
[TASK1]->[Testing]
2021-01-18 to 2021-01-22 are named [End's committee]
2021-01-18 to 2021-01-22 are colored in salmon
@endgantt
|
🎉 Copied!
|
@startgantt
projectscale quarterly
Project starts the 1st of october 2020
[Prototype design] as [TASK1] requires 700 days
[TASK1] is colored in Lavender/LightBlue
[Testing] requires 200 days
[TASK1]->[Testing]
2021-01-18 to 2021-03-22 are colored in salmon
@endgantt
|
Yearly
🎉 Copied!
|
@startgantt
projectscale yearly
Project starts the 1st of october 2020
[Prototype design] as [TASK1] requires 700 days
[TASK1] is colored in Lavender/LightBlue
[Testing] requires 200 days
[TASK1]->[Testing]
2021-01-18 to 2021-03-22 are colored in salmon
@endgantt
|
Date range with between
Without date range
🎉 Copied!
|
@startgantt
saturday are closed
sunday are closed
Project starts the 1st of january 2021
[Prototype design end] as [TASK1] requires 8 days
[TASK1] is colored in Lavender/LightBlue
[Testing] requires 3 days
[TASK1]->[Testing]
2021-01-18 to 2021-01-22 are named [End's committee]
2021-01-18 to 2021-01-22 are colored in salmon
@endgantt
|
With date range
🎉 Copied!
|
@startgantt
Print between 2021-01-12 and 2021-01-22
Saturday are closed
sunday are closed
Project starts the 1st of january 2021
[Prototype design end] as [TASK1] requires 8 days
[TASK1] is colored in Lavender/LightBlue
[Testing] requires 3 days
[TASK1]->[Testing]
2021-01-18 to 2021-01-22 are named [End's committee]
2021-01-18 to 2021-01-22 are colored in salmon
@endgantt
|
You can change zoom, with the parameter:
Zoom on daily (default) scale
🎉 Copied!
|
@startgantt
printscale daily
saturday are closed
sunday are closed
Project starts the 1st of january 2021
[Prototype design end] as [TASK1] requires 8 days
[TASK1] is colored in Lavender/LightBlue
[Testing] requires 3 days
[TASK1]->[Testing]
2021-01-18 to 2021-01-22 are named [End's committee]
2021-01-18 to 2021-01-22 are colored in salmon
@endgantt
|
🎉 Copied!
|
@startgantt
printscale daily zoom 2
saturday are closed
sunday are closed
Project starts the 1st of january 2021
[Prototype design end] as [TASK1] requires 8 days
[TASK1] is colored in Lavender/LightBlue
[Testing] requires 3 days
[TASK1]->[Testing]
2021-01-18 to 2021-01-22 are named [End's committee]
2021-01-18 to 2021-01-22 are colored in salmon
@endgantt
|
[Ref. QA-13725]
Zoom on weekly scale
🎉 Copied!
|
@startgantt
printscale weekly
saturday are closed
sunday are closed
Project starts the 1st of january 2021
[Prototype design end] as [TASK1] requires 19 days
[TASK1] is colored in Lavender/LightBlue
[Testing] requires 14 days
[TASK1]->[Testing]
2021-01-18 to 2021-01-22 are named [End's committee]
2021-01-18 to 2021-01-22 are colored in salmon
@endgantt
|
🎉 Copied!
|
@startgantt
printscale weekly zoom 4
saturday are closed
sunday are closed
Project starts the 1st of january 2021
[Prototype design end] as [TASK1] requires 19 days
[TASK1] is colored in Lavender/LightBlue
[Testing] requires 14 days
[TASK1]->[Testing]
2021-01-18 to 2021-01-22 are named [End's committee]
2021-01-18 to 2021-01-22 are colored in salmon
@endgantt
|
Zoom on monthly scale
🎉 Copied!
|
@startgantt
projectscale monthly
Project starts the 20th of september 2020
[Prototype design] as [TASK1] requires 130 days
[TASK1] is colored in Lavender/LightBlue
[Testing] requires 20 days
[TASK1]->[Testing]
2021-01-18 to 2021-01-22 are named [End's committee]
2021-01-18 to 2021-01-22 are colored in salmon
@endgantt
|
🎉 Copied!
|
@startgantt
projectscale monthly zoom 3
Project starts the 20th of september 2020
[Prototype design] as [TASK1] requires 130 days
[TASK1] is colored in Lavender/LightBlue
[Testing] requires 20 days
[TASK1]->[Testing]
2021-01-18 to 2021-01-22 are named [End's committee]
2021-01-18 to 2021-01-22 are colored in salmon
@endgantt
|
Zoom on quarterly scale
🎉 Copied!
|
@startgantt
projectscale quarterly
Project starts the 20th of september 2020
[Prototype design] as [TASK1] requires 130 days
[TASK1] is colored in Lavender/LightBlue
[Testing] requires 20 days
[TASK1]->[Testing]
2021-01-18 to 2021-01-22 are named [End's committee]
2021-01-18 to 2021-01-22 are colored in salmon
@endgantt
|
🎉 Copied!
|
@startgantt
projectscale quarterly zoom 7
Project starts the 20th of september 2020
[Prototype design] as [TASK1] requires 130 days
[TASK1] is colored in Lavender/LightBlue
[Testing] requires 20 days
[TASK1]->[Testing]
2021-01-18 to 2021-01-22 are named [End's committee]
2021-01-18 to 2021-01-22 are colored in salmon
@endgantt
|
Zoom on yearly scale
🎉 Copied!
|
@startgantt
projectscale yearly
Project starts the 1st of october 2020
[Prototype design] as [TASK1] requires 700 days
[TASK1] is colored in Lavender/LightBlue
[Testing] requires 200 days
[TASK1]->[Testing]
2021-01-18 to 2021-03-22 are colored in salmon
@endgantt
|
🎉 Copied!
|
@startgantt
projectscale yearly zoom 2
Project starts the 1st of october 2020
[Prototype design] as [TASK1] requires 700 days
[TASK1] is colored in Lavender/LightBlue
[Testing] requires 200 days
[TASK1]->[Testing]
2021-01-18 to 2021-03-22 are colored in salmon
@endgantt
|
With Weeknumbers (by default)
🎉 Copied!
|
@startgantt
printscale weekly
Project starts the 6th of July 2020
[Task1] on {Alice} requires 2 weeks
[Task2] on {Bob:50%} requires 2 weeks
then [Task3] on {Alice:25%} requires 3 days
@endgantt
|
With Weeknumbers (starting from 1)
🎉 Copied!
|
@startgantt
printscale weekly with week numbering from 1
Project starts the 6th of July 2020
[Task1] on {Alice} requires 2 weeks
[Task2] on {Bob:50%} requires 2 weeks
then [Task3] on {Alice:25%} requires 3 days
@endgantt
|
[Ref. GH-525]
With Calendar Date
🎉 Copied!
|
@startgantt
printscale weekly with calendar date
Project starts the 6th of July 2020
[Task1] on {Alice} requires 2 weeks
[Task2] on {Bob:50%} requires 2 weeks
then [Task3] on {Alice:25%} requires 3 days
@endgantt
|
[Ref. QA-11630]
It is possible to close some day.
🎉 Copied!
|
@startgantt
project starts the 2018/04/09
saturday are closed
sunday are closed
2018/05/01 is closed
2018/04/17 to 2018/04/19 is closed
[Prototype design] requires 14 days
[Test prototype] requires 4 days
[Test prototype] starts at [Prototype design]'s end
[Prototype design] is colored in Fuchsia/FireBrick
[Test prototype] is colored in GreenYellow/Green
@endgantt
|
Then it is possible to open some closed day.
🎉 Copied!
|
@startgantt
2020-07-07 to 2020-07-17 is closed
2020-07-13 is open
Project starts the 2020-07-01
[Prototype design] requires 10 days
Then [Test prototype] requires 10 days
@endgantt
|
A
week is a synonym for how many non-closed days are in a week, as:
🎉 Copied!
|
@startgantt
Project starts 2021-03-29
[Review 01] happens at 2021-03-29
[Review 02 - 3 weeks] happens on 3 weeks after [Review 01]'s end
[Review 02 - 21 days] happens on 21 days after [Review 01]'s end
@endgantt
|
So if you specify
Saturday and
Sunday as closed, a
week will be equivalent to 5 days, as:
🎉 Copied!
|
@startgantt
Project starts 2021-03-29
saturday are closed
sunday are closed
[Review 01] happens at 2021-03-29
[Review 02 - 3 weeks] happens on 3 weeks after [Review 01]'s end
[Review 02 - 21 days] happens on 21 days after [Review 01]'s end
@endgantt
|
[Ref. QA-13434]
It is possible to manage working days.
🎉 Copied!
|
@startgantt
saturday are closed
sunday are closed
2022-07-04 to 2022-07-15 is closed
Project starts 2022-06-27
[task1] starts at 2022-06-27 and requires 1 week
[task2] starts 2 working days after [task1]'s end and requires 3 days
@endgantt
|
[Ref. QA-16188]
It's possible to use the
then
keyword to denote consecutive tasks.
🎉 Copied!
|
@startgantt
[Prototype design] requires 14 days
then [Test prototype] requires 4 days
then [Deploy prototype] requires 6 days
@endgantt
|
You can also use arrow
->
🎉 Copied!
|
@startgantt
[Prototype design] requires 14 days
[Build prototype] requires 4 days
[Prepare test] requires 6 days
[Prototype design] -> [Build prototype]
[Prototype design] -> [Prepare test]
@endgantt
|
You can affect tasks on resources using the
on
keyword and brackets for resource name.
🎉 Copied!
|
@startgantt
[Task1] on {Alice} requires 10 days
[Task2] on {Bob:50%} requires 2 days
then [Task3] on {Alice:25%} requires 1 days
@endgantt
|
Multiple resources can be assigned to a task:
🎉 Copied!
|
@startgantt
[Task1] on {Alice} {Bob} requires 20 days
@endgantt
|
Resources can be marked as off on specific days:
🎉 Copied!
|
@startgantt
project starts on 2020-06-19
[Task1] on {Alice} requires 10 days
{Alice} is off on 2020-06-24 to 2020-06-26
@endgantt
|
Without any hiding (by default)
🎉 Copied!
|
@startgantt
[Task1] on {Alice} requires 10 days
[Task2] on {Bob:50%} requires 2 days
then [Task3] on {Alice:25%} requires 1 days
then [Task4] on {Alice:25%} {Bob} requires 1 days
@endgantt
|
Hide resources names
You can hide resources names and percentage, on tasks, using the
hide resources names
keywords.
🎉 Copied!
|
@startgantt
hide resources names
[Task1] on {Alice} requires 10 days
[Task2] on {Bob:50%} requires 2 days
then [Task3] on {Alice:25%} requires 1 days
then [Task4] on {Alice:25%} {Bob} requires 1 days
@endgantt
|
Hide resources footbox
You can also hide resources names on bottom of the diagram using the
hide resources footbox
keywords.
🎉 Copied!
|
@startgantt
hide resources footbox
[Task1] on {Alice} requires 10 days
[Task2] on {Bob:50%} requires 2 days
then [Task3] on {Alice:25%} requires 1 days
then [Task4] on {Alice:25%} {Bob} requires 1 days
@endgantt
|
Hide the both (resources names and resources footbox)
You can also hide the both.
🎉 Copied!
|
@startgantt
hide resources names
hide resources footbox
[Task1] on {Alice} requires 10 days
[Task2] on {Bob:50%} requires 2 days
then [Task3] on {Alice:25%} requires 1 days
then [Task4] on {Alice:25%} {Bob} requires 1 days
@endgantt
|
You can use
--
to separate sets of tasks.
🎉 Copied!
|
@startgantt
[Task1] requires 10 days
then [Task2] requires 4 days
-- Phase Two --
then [Task3] requires 5 days
then [Task4] requires 6 days
@endgantt
|
You can add Vertical Separators with the syntax:
Separator just [at]
.
🎉 Copied!
|
@startgantt
[task1] requires 1 week
[task2] starts 20 days after [task1]'s end and requires 3 days
Separator just at [task1]'s end
Separator just 2 days after [task1]'s end
Separator just at [task2]'s start
Separator just 2 days before [task2]'s start
@endgantt
|
[Ref. QA-16247]
It also possible to use the
and
conjunction.
You can also add delays in constraints.
🎉 Copied!
|
@startgantt
[Prototype design] requires 13 days and is colored in Lavender/LightBlue
[Test prototype] requires 9 days and is colored in Coral/Green and starts 3 days after [Prototype design]'s end
[Write tests] requires 5 days and ends at [Prototype design]'s end
[Hire tests writers] requires 6 days and ends at [Write tests]'s start
[Init and write tests report] is colored in Coral/Green
[Init and write tests report] starts 1 day before [Test prototype]'s start and ends at [Test prototype]'s end
@endgantt
|
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 '
)
🎉 Copied!
|
@startgantt
' This is a comment
[T1] requires 3 days
/' this comment
is on several lines '/
[T2] starts at [T1]'s end and requires 1 day
@endgantt
|
Without style (by default)
🎉 Copied!
|
@startgantt
[Task1] requires 20 days
note bottom
memo1 ...
memo2 ...
explanations1 ...
explanations2 ...
end note
[Task2] requires 4 days
[Task1] -> [Task2]
-- Separator title --
[M1] happens on 5 days after [Task1]'s end
-- end --
@endgantt
|
With style
You can use
style to change rendering of elements.
🎉 Copied!
|
@startgantt
<style>
ganttDiagram {
task {
FontName Helvetica
FontColor red
FontSize 18
FontStyle bold
BackGroundColor GreenYellow
LineColor blue
}
milestone {
FontColor blue
FontSize 25
FontStyle italic
BackGroundColor yellow
LineColor red
}
note {
FontColor DarkGreen
FontSize 10
LineColor OrangeRed
}
arrow {
FontName Helvetica
FontColor red
FontSize 18
FontStyle bold
BackGroundColor GreenYellow
LineColor blue
}
separator {
LineColor red
BackGroundColor green
FontSize 16
FontStyle bold
FontColor purple
}
}
</style>
[Task1] requires 20 days
note bottom
memo1 ...
memo2 ...
explanations1 ...
explanations2 ...
end note
[Task2] requires 4 days
[Task1] -> [Task2]
-- Separator title --
[M1] happens on 5 days after [Task1]'s end
-- end --
@endgantt
|
[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):
🎉 Copied!
|
@startgantt
<style>
ganttDiagram {
timeline {
LineColor transparent
FontColor transparent
}
}
</style>
hide footbox
[Test prototype] requires 7 days
[Prototype completed] happens at [Test prototype]'s end
[Setup assembly line] requires 9 days
[Setup assembly line] starts at [Test prototype]'s end
then [Setup] requires 5 days
[T2] requires 2 days and starts at [Test prototype]'s end
then [T3] requires 3 days
-- end task --
then [T4] requires 2 days
@endgantt
|
[Ref. QA-13971]
Or:
🎉 Copied!
|
@startgantt
<style>
ganttDiagram {
timeline {
LineColor transparent
FontColor transparent
}
closed {
FontColor transparent
}
}
</style>
hide footbox
project starts the 2018/04/09
saturday are closed
sunday are closed
2018/05/01 is closed
2018/04/17 to 2018/04/19 is closed
[Prototype design] requires 9 days
[Test prototype] requires 5 days
[Test prototype] starts at [Prototype design]'s end
[Prototype design] is colored in Fuchsia/FireBrick
[Test prototype] is colored in GreenYellow/Green
@endgantt
|
[Ref. QA-13464]
🎉 Copied!
|
@startgantt
[task01] requires 15 days
note bottom
memo1 ...
memo2 ...
explanations1 ...
explanations2 ...
end note
[task01] -> [task02]
@endgantt
|
Example with overlap.
🎉 Copied!
|
@startgantt
[task01] requires 15 days
note bottom
memo1 ...
memo2 ...
explanations1 ...
explanations2 ...
end note
[task01] -> [task02]
[task03] requires 5 days
@endgantt
|
🎉 Copied!
|
@startgantt
-- test01 --
[task01] requires 4 days
note bottom
'note left
memo1 ...
memo2 ...
explanations1 ...
explanations2 ...
end note
[task02] requires 8 days
[task01] -> [task02]
note bottom
'note left
memo1 ...
memo2 ...
explanations1 ...
explanations2 ...
end note
-- test02 --
[task03] as [t3] requires 7 days
[t3] -> [t4]
@endgantt
|
DONE
Thanks for correction (of #386 on v1.2020.18) when overlapping
🎉 Copied!
|
@startgantt
Project starts 2020-09-01
[taskA] starts 2020-09-01 and requires 3 days
[taskB] starts 2020-09-10 and requires 3 days
[taskB] displays on same row as [taskA]
[task01] starts 2020-09-05 and requires 4 days
then [task02] requires 8 days
note bottom
note for task02
more notes
end note
then [task03] requires 7 days
note bottom
note for task03
more notes
end note
-- separator --
[taskC] starts 2020-09-02 and requires 5 days
[taskD] starts 2020-09-09 and requires 5 days
[taskD] displays on same row as [taskC]
[task 10] starts 2020-09-05 and requires 5 days
then [task 11] requires 5 days
note bottom
note for task11
more notes
end note
@endgantt
|
🎉 Copied!
|
@startgantt
Project starts the 5th of december 2018
saturday are closed
sunday are closed
2018/12/29 is opened
[Prototype design] requires 17 days
[Prototype design] pauses on 2018/12/13
[Prototype design] pauses on 2018/12/14
[Prototype design] pauses on monday
[Test prototype] starts at [Prototype design]'s end and requires 2 weeks
@endgantt
|
You can change link colors:
- with this syntax:
with <color> <style> link
🎉 Copied!
|
@startgantt
[T1] requires 4 days
[T2] requires 4 days and starts 3 days after [T1]'s end with blue dotted link
[T3] requires 4 days and starts 3 days after [T2]'s end with green bold link
[T4] requires 4 days and starts 3 days after [T3]'s end with green dashed link
@endgantt
|
- or directly by using arrow style
🎉 Copied!
|
@startgantt
<style>
ganttDiagram {
arrow {
LineColor blue
}
}
</style>
[Prototype design] requires 7 days
[Build prototype] requires 4 days
[Prepare test] requires 6 days
[Prototype design] -[#FF00FF]-> [Build prototype]
[Prototype design] -[dotted]-> [Prepare test]
Then [Run test] requires 4 days
@endgantt
|
[Ref. QA-13693]
You can put Tasks or Milestones on the same line, with this syntax:
[T|M] displays on same row as [T|M]
🎉 Copied!
|
@startgantt
[Prototype design] requires 13 days
[Test prototype] requires 4 days and 1 week
[Test prototype] starts 1 week and 2 days after [Prototype design]'s end
[Test prototype] displays on same row as [Prototype design]
[r1] happens on 5 days after [Prototype design]'s end
[r2] happens on 5 days after [r1]'s end
[r3] happens on 5 days after [r2]'s end
[r2] displays on same row as [r1]
[r3] displays on same row as [r1]
@endgantt
|
🎉 Copied!
|
@startgantt
Project starts the 20th of september 2018
sunday are close
2018/09/21 to 2018/09/23 are colored in salmon
2018/09/21 to 2018/09/30 are named [Vacation in the Bahamas]
today is 30 days after start and is colored in #AAF
[Foo] happens 40 days after start
[Dummy] requires 10 days and starts 10 days after start
@endgantt
|
🎉 Copied!
|
@startgantt
project starts on 2020-07-01
[P_start] happens 2020-07-03
[P_end] happens 2020-07-13
[Prototype design] occurs from [P_start] to [P_end]
@endgantt
|
Verbal form
|
Example
|
[T] starts
|
|
[M] happens
|
|
🎉 Copied!
|
@startgantt
header some header
footer some footer
title My title
[Prototype design] requires 13 days
legend
The legend
end legend
caption This is caption
@endgantt
|
(See also: Common commands)
🎉 Copied!
|
@startgantt
[Kick off] requires 1 days and is colored in blue
then [Prototype design] requires 5 days
[Test prototype] requires 4 days
[Test prototype] starts at [Prototype design]'s end
[Prototype design] is colored in Green
[Test prototype] is colored in gray
legend
Legend:
|= Color |= Task Type |
|<#gray> | Planned |
|<#Green>| In progress |
|<#blue> | Done |
end legend
@endgantt
|
[Ref. QA-19021]
You can use the
hide footbox
keywords to remove the foot boxes
of the gantt diagram
(as for sequence diagram).
Examples on:
- daily scale (without project start)
🎉 Copied!
|
@startgantt
hide footbox
title Foot Box removed
[Prototype design] requires 15 days
[Test prototype] requires 10 days
@endgantt
|
🎉 Copied!
|
@startgantt
Project starts the 20th of september 2017
[Prototype design] as [TASK1] requires 13 days
[TASK1] is colored in Lavender/LightBlue
hide footbox
@endgantt
|
🎉 Copied!
|
@startgantt
hide footbox
printscale weekly
saturday are closed
sunday are closed
Project starts the 1st of january 2021
[Prototype design end] as [TASK1] requires 19 days
[TASK1] is colored in Lavender/LightBlue
[Testing] requires 14 days
[TASK1]->[Testing]
2021-01-18 to 2021-01-22 are named [End's committee]
2021-01-18 to 2021-01-22 are colored in salmon
@endgantt
|
🎉 Copied!
|
@startgantt
hide footbox
projectscale monthly
Project starts the 20th of september 2020
[Prototype design] as [TASK1] requires 130 days
[TASK1] is colored in Lavender/LightBlue
[Testing] requires 20 days
[TASK1]->[Testing]
2021-01-18 to 2021-01-22 are named [End's committee]
2021-01-18 to 2021-01-22 are colored in salmon
@endgantt
|
🎉 Copied!
|
@startgantt
hide footbox
projectscale quarterly
Project starts the 1st of october 2020
[Prototype design] as [TASK1] requires 700 days
[TASK1] is colored in Lavender/LightBlue
[Testing] requires 200 days
[TASK1]->[Testing]
2021-01-18 to 2021-03-22 are colored in salmon
@endgantt
|
🎉 Copied!
|
@startgantt
hide footbox
projectscale yearly
Project starts the 1st of october 2020
[Prototype design] as [TASK1] requires 700 days
[TASK1] is colored in Lavender/LightBlue
[Testing] requires 200 days
[TASK1]->[Testing]
2021-01-18 to 2021-03-22 are colored in salmon
@endgantt
|
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)
🎉 Copied!
|
@startgantt
saturday are closed
sunday are closed
Project starts 2021-01-01
[Prototype design end] as [TASK1] requires 19 days
[TASK1] is colored in Lavender/LightBlue
[Testing] requires 14 days
[TASK1]->[Testing]
2021-01-18 to 2021-01-22 are colored in salmon
@endgantt
|
Deutsch (de)
🎉 Copied!
|
@startgantt
language de
saturday are closed
sunday are closed
Project starts 2021-01-01
[Prototype design end] as [TASK1] requires 19 days
[TASK1] is colored in Lavender/LightBlue
[Testing] requires 14 days
[TASK1]->[Testing]
2021-01-18 to 2021-01-22 are colored in salmon
@endgantt
|
Japanese (ja)
🎉 Copied!
|
@startgantt
language ja
saturday are closed
sunday are closed
Project starts 2021-01-01
[Prototype design end] as [TASK1] requires 19 days
[TASK1] is colored in Lavender/LightBlue
[Testing] requires 14 days
[TASK1]->[Testing]
2021-01-18 to 2021-01-22 are colored in salmon
@endgantt
|
Chinese (zh)
🎉 Copied!
|
@startgantt
language zh
saturday are closed
sunday are closed
Project starts 2021-01-01
[Prototype design end] as [TASK1] requires 19 days
[TASK1] is colored in Lavender/LightBlue
[Testing] requires 14 days
[TASK1]->[Testing]
2021-01-18 to 2021-01-22 are colored in salmon
@endgantt
|
Korean (ko)
🎉 Copied!
|
@startgantt
language ko
saturday are closed
sunday are closed
Project starts 2021-01-01
[Prototype design end] as [TASK1] requires 19 days
[TASK1] is colored in Lavender/LightBlue
[Testing] requires 14 days
[TASK1]->[Testing]
2021-01-18 to 2021-01-22 are colored in salmon
@endgantt
|
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.
🎉 Copied!
|
@startgantt
[Prototype design] requires 1 weeks
then [Prototype completed] requires 4 days
[End Prototype completed] happens at [Prototype completed]'s end
then [Test prototype] requires 5 days
[End Test prototype] happens at [Test prototype]'s end
[Prototype completed] is deleted
[End Prototype completed] is deleted
@endgantt
|
[Ref. QA-9129]
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
:
🎉 Copied!
|
@startgantt
title Today is %date("YYYY-MM-dd")
!$now = %now()
!$past = %date("YYYY-MM-dd", $now - 14*24*3600)
Project starts $past
today is colored in pink
[foo] requires 10 days
[bar] requires 5 days and starts %date("YYYY-MM-dd", $now + 4*24*3600)
[Tomorrow] happens %date("YYYY-MM-dd", $now + 1*24*3600)
@endgantt
|
[Ref. QA-16285]
The labels are near elements (by default)
🎉 Copied!
|
@startgantt
[Task1] requires 1 days
then [Task2_long_long_long] as [T2] requires 2 days
-- Phase Two --
then [Task3] as [T3] requires 2 days
[Task4] as [T4] requires 1 day
[Task5] as [T5] requires 2 days
[T2] -> [T4]
[T2] -> [T5]
[Task6_long_long_long] as [T6] requires 4 days
[T3] -> [T6]
[T5] -> [T6]
[End] happens 1 day after [T6]'s end
@endgantt
|
To change the label position, you can use the command
label
:
Label on first column
🎉 Copied!
|
@startgantt
Label on first column and left aligned
[Task1] requires 1 days
then [Task2_long_long_long] as [T2] requires 2 days
-- Phase Two --
then [Task3] as [T3] requires 2 days
[Task4] as [T4] requires 1 day
[Task5] as [T5] requires 2 days
[T2] -> [T4]
[T2] -> [T5]
[Task6_long_long_long] as [T6] requires 4 days
[T3] -> [T6]
[T5] -> [T6]
[End] happens 1 day after [T6]'s end
@endgantt
|
🎉 Copied!
|
@startgantt
Label on first column and right aligned
[Task1] requires 1 days
then [Task2_long_long_long] as [T2] requires 2 days
-- Phase Two --
then [Task3] as [T3] requires 2 days
[Task4] as [T4] requires 1 day
[Task5] as [T5] requires 2 days
[T2] -> [T4]
[T2] -> [T5]
[Task6_long_long_long] as [T6] requires 4 days
[T3] -> [T6]
[T5] -> [T6]
[End] happens 1 day after [T6]'s end
@endgantt
|
Label on last column
🎉 Copied!
|
@startgantt
Label on last column and left aligned
[Task1] requires 1 days
then [Task2_long_long_long] as [T2] requires 2 days
-- Phase Two --
then [Task3] as [T3] requires 2 days
[Task4] as [T4] requires 1 day
[Task5] as [T5] requires 2 days
[T2] -> [T4]
[T2] -> [T5]
[Task6_long_long_long] as [T6] requires 4 days
[T3] -> [T6]
[T5] -> [T6]
[End] happens 1 day after [T6]'s end
@endgantt
|
🎉 Copied!
|
@startgantt
Label on last column and right aligned
[Task1] requires 1 days
then [Task2_long_long_long] as [T2] requires 2 days
-- Phase Two --
then [Task3] as [T3] requires 2 days
[Task4] as [T4] requires 1 day
[Task5] as [T5] requires 2 days
[T2] -> [T4]
[T2] -> [T5]
[Task6_long_long_long] as [T6] requires 4 days
[T3] -> [T6]
[T5] -> [T6]
[End] happens 1 day after [T6]'s end
@endgantt
|
[Ref. QA-12433]