Difference between revisions of "Gantt charts"
(modules for gantt charts) |
(adjusted to the gantt module in garden) |
||
Line 1: | Line 1: | ||
− | + | < [[Modules]] | [[Graphics]] | [[Gantt charts]] | [[MetaPost]] | [[TikZ]] > | |
− | + | [http://modules.contextgarden.net/gantt Gantt] is a (third party) [[Modules | ConTeXt module]] for drawing Gantt charts via MetaPost or PGF/TikZ. | |
− | |||
− | + | == Description == | |
+ | |||
+ | To switch between the two drawing engines (MetaPost and TikZ) use the style option. | ||
+ | <texcode>\usemodule[gantt][style=mp]</texcode> | ||
+ | <texcode>\usemodule[gantt][style=tikz]</texcode> | ||
+ | |||
+ | The default engine is MetaPost. | ||
+ | |||
+ | |||
+ | Here is a short description of the environments and commands: | ||
+ | |||
+ | === Gantt === | ||
+ | The '''gantt''' environment draws the canvas of a gantt figure. | ||
+ | <texcode>\startgantt[...]{no of Tasks to plot}{no of time slots}</texcode> | ||
+ | The optional argument [...] can be filled in a key=value syntax, using one or more of the following keys: | ||
+ | |||
+ | * ''sf'' - MetaPost scale factor (default: 1) | ||
+ | * ''xunitlength'' - length of one time slot (default: 1cm) | ||
+ | * ''fontsize'' - fontsize of labels (default: \tf) | ||
+ | * ''titlefontsize'' - fontsize of title section (default: \tfx) | ||
+ | * ''drawledgerline'' - switch to enable/disable the drawing of horizontal ledger lines (default value: false) | ||
+ | |||
+ | === Ganttitle === | ||
+ | This is the environment for drawing the title section. | ||
+ | <texcode>\startganttitle (...) \stopganttitle</texcode> | ||
+ | |||
+ | === Titleelement === | ||
+ | This draws one element of the title. | ||
+ | <texcode>\titleelement{label}{length}</texcode> | ||
+ | |||
+ | === Numtitle === | ||
+ | This draws a numbered sequence of title elements. | ||
+ | <texcode>\numtitle{start number}{increment}{end number}{length of each title element}</texcode> | ||
+ | |||
+ | === Ganttbar === | ||
+ | This draws a single, unconnected bar for representing a task. | ||
+ | <texcode>\ganttbar[pattern=value,color=value]{label}{start}{length}</texcode> | ||
+ | The optional comma separated arguments are: | ||
+ | |||
+ | * ''<pattern>'' - TikZ pattern (e.g. north east lines (default), north west lines, crosshatch, crosshatch dots, grid, …) or see [[Gantt#Regressions | Regressions]] section for MetaPost | ||
+ | * ''<color>'' - a color of the pattern (e.g. black (default), red, green blue gray, dark gray) | ||
+ | |||
+ | === Ganttcon === | ||
+ | This draws an arrow between the bars specified by coordinates. | ||
+ | <texcode>\ganttcon{startx}{starty}{endx}{endy}</texcode> | ||
+ | |||
+ | === Ganttbarcon === | ||
+ | This draws a single bar and connects the bar with the previous bar for consecutive tasks. | ||
+ | <texcode>\ganttbarcon[pattern=value,color=value]{label}{start}{length}</texcode> | ||
+ | The optional pattern argument are the same as for \ganttbar. | ||
+ | |||
+ | === Ganttgroup === | ||
+ | This draws a bar to group tasks. | ||
+ | <texcode>\ganttgroup{label}{start}{length}</texcode> | ||
+ | |||
+ | === Ganttmilestone === | ||
+ | This draws a milestone using a diamond. | ||
+ | <texcode>\ganttmilestone[color=value]{label}{start}</texcode> | ||
+ | The optional color argument argument is: | ||
+ | |||
+ | * ''<color>'' - a color of the pattern (e.g. black (default), red, green blue gray, dark gray) | ||
+ | |||
+ | === Ganttmilestonecon === | ||
+ | This draws a milestone using a diamond and connects the milestone with the previous bar or milestone. | ||
+ | <texcode>\ganttmilestonecon[color=value]{label}{start}</texcode> | ||
+ | The optional color argument argument is: | ||
+ | |||
+ | * ''<color>'' - a color of the pattern (e.g. black (default), red, green blue gray, dark gray) | ||
+ | |||
+ | == Examples == | ||
+ | |||
+ | === Minimal example === | ||
+ | <texcode> | ||
+ | \usemodule[gantt] | ||
+ | \setuppagenumbering[location=] | ||
+ | |||
+ | \starttext | ||
+ | \startgantt{7}{12} | ||
+ | \startganttitle | ||
+ | \numtitle{1}{1}{12}{1} | ||
+ | \stopganttitle | ||
+ | \ganttbar{a task}{0}{2} | ||
+ | \ganttbarcon{a consecutive task}{2}{4} | ||
+ | \ganttbarcon{another consecutive task}{8}{2} | ||
+ | \ganttbar{another task}{2}{2} | ||
+ | \ganttbar{another task}{4}{2} | ||
+ | \ganttbar{another task}{4}{2} | ||
+ | \ganttcon{4}{4}{4}{6} | ||
+ | \stopgantt | ||
+ | \stoptext | ||
+ | </texcode> | ||
+ | |||
+ | |||
+ | === Similar example using names of calendar months === | ||
+ | <texcode> | ||
+ | \usemodule[gantt] | ||
+ | \setuppagenumbering[location=] | ||
+ | |||
+ | \starttext | ||
+ | \startgantt{3}{12} | ||
+ | \startganttitle | ||
+ | \titleelement{Jan}{1} | ||
+ | \titleelement{Feb}{1} | ||
+ | \titleelement{Mar}{1} | ||
+ | \titleelement{Apr}{1} | ||
+ | \titleelement{May}{1} | ||
+ | \titleelement{Jun}{1} | ||
+ | \titleelement{Jul}{1} | ||
+ | \titleelement{Aug}{1} | ||
+ | \titleelement{Sep}{1} | ||
+ | \titleelement{Oct}{1} | ||
+ | \titleelement{Nov}{1} | ||
+ | \titleelement{Dec}{1} | ||
+ | \stopganttitle | ||
+ | \ganttbar{Task 1}{0}{2} | ||
+ | \ganttbarcon{a consecutive task}{2}{4} | ||
+ | \stopgantt | ||
+ | \stoptext | ||
+ | </texcode> | ||
+ | |||
+ | |||
+ | === Multiple titles with different length === | ||
+ | <texcode> | ||
+ | \usemodule[gantt] | ||
+ | \setuppagenumbering[location=] | ||
+ | |||
+ | \starttext | ||
+ | \startgantt{4}{12} | ||
+ | \startganttitle | ||
+ | \numtitle{2010}{1}{2012}{4} | ||
+ | \stopganttitle | ||
+ | \startganttitle | ||
+ | \numtitle{1}{1}{4}{1} | ||
+ | \numtitle{1}{1}{4}{1} | ||
+ | \numtitle{1}{1}{4}{1} | ||
+ | \stopganttitle | ||
+ | \ganttbar{Task 1}{0}{2} | ||
+ | \ganttbarcon{a consecutive task}{2}{4} | ||
+ | \stopgantt | ||
+ | \stoptext | ||
+ | </texcode> | ||
+ | |||
+ | |||
+ | === Milestone example === | ||
+ | <texcode> | ||
+ | \usemodule[gantt] | ||
+ | \setuppagenumbering[location=] | ||
+ | |||
+ | \starttext | ||
+ | \startgantt{10}{12} | ||
+ | \startganttitle | ||
+ | \numtitle{1}{1}{12}{1} | ||
+ | \stopganttitle | ||
+ | \ganttbar{a task}{0}{2} | ||
+ | \ganttbarcon{a consecutive task}{2}{4} | ||
+ | \ganttbarcon{another consecutive task}{8}{2} | ||
+ | \ganttmilestone[color=cyan]{Milestone with color!}{4} | ||
+ | \ganttbar{another task}{2}{2} | ||
+ | \ganttbar[color=cyan]{another coloured task}{4}{4} | ||
+ | \ganttbar{another task}{4}{2} | ||
+ | \ganttcon{4}{5}{4}{7} | ||
+ | \ganttmilestonecon{A connected Milestone}{7} | ||
+ | \ganttbarcon{another consecutive task}{8}{2} | ||
+ | \stopgantt | ||
+ | \stoptext | ||
+ | </texcode> | ||
+ | |||
+ | |||
+ | === More complex example (using groups and optional arguments) === | ||
+ | <texcode> | ||
+ | \usemodule[gantt] | ||
+ | \setuppapersize[landscape][landscape] | ||
+ | \setuplayout[scale=0.8] | ||
+ | \setuppagenumbering[location=] | ||
+ | |||
+ | \starttext | ||
+ | \startgantt[xunitlength=0.5cm,fontsize=\tfx,titlefontsize=\tfx,drawledgerline=true]{10}{48} | ||
+ | \startganttitle | ||
+ | \titleelement{2009}{7} | ||
+ | \numtitle{2010}{1}{2012}{12} | ||
+ | \titleelement{2013}{5} | ||
+ | \stopganttitle | ||
+ | \startganttitle | ||
+ | \numtitle{6}{1}{12}{1} | ||
+ | \numtitle{1}{1}{12}{1} | ||
+ | \numtitle{1}{1}{12}{1} | ||
+ | \numtitle{1}{1}{12}{1} | ||
+ | \numtitle{1}{1}{5}{1} | ||
+ | \stopganttitle | ||
+ | \ganttbar{task 1}{2}{17} | ||
+ | \ganttgroup{a group of tasks}{6}{18} | ||
+ | \ganttbar{task 2}{5}{10} | ||
+ | \ganttbar[color=blue]{task 3}{15}{3} | ||
+ | \ganttbar{task 4}{20}{3} | ||
+ | \ganttcon{15}{4}{20}{6} | ||
+ | \ganttbar{task 5}{15}{5} | ||
+ | \ganttbarcon[color=red]{task 6}{20}{5} | ||
+ | \ganttbarcon{task 7}{30}{5} | ||
+ | \stopgantt | ||
+ | \stoptext | ||
+ | </texcode> | ||
+ | |||
+ | |||
+ | == Regressions == | ||
+ | |||
+ | There are no default color patterns in MetaPost. This needs to be implemented separately in order to have a pattern option in this module. | ||
+ | |||
+ | As a temporary solution the [http://www.ctan.org/tex-archive/graphics/metapost/contrib/macros/hatching/ hatching] MetaPost package is used. | ||
+ | |||
+ | == See also == | ||
+ | |||
+ | * [http://www.ctan.org/pkg/pgfgantt Draw Gantt charts with TikZ] | ||
+ | * [http://www.martin-kumm.de/tex_gantt_package.php A LaTeX package for drawing gantt plots using pgf/tikz] | ||
+ | * [http://www.kese.hu/p/tikz.html Gantt Chart with TikZ] | ||
+ | |||
+ | [[Category:Modules]] | ||
+ | [[Category:Graphics]] | ||
+ | [[Category:Metapost]] |
Revision as of 17:51, 11 September 2011
< Modules | Graphics | Gantt charts | MetaPost | TikZ >
Gantt is a (third party) ConTeXt module for drawing Gantt charts via MetaPost or PGF/TikZ.
Contents
Description
To switch between the two drawing engines (MetaPost and TikZ) use the style option.
\usemodule[gantt][style=mp]
\usemodule[gantt][style=tikz]
The default engine is MetaPost.
Here is a short description of the environments and commands:
Gantt
The gantt environment draws the canvas of a gantt figure.
\startgantt[...]{no of Tasks to plot}{no of time slots}
The optional argument [...] can be filled in a key=value syntax, using one or more of the following keys:
- sf - MetaPost scale factor (default: 1)
- xunitlength - length of one time slot (default: 1cm)
- fontsize - fontsize of labels (default: \tf)
- titlefontsize - fontsize of title section (default: \tfx)
- drawledgerline - switch to enable/disable the drawing of horizontal ledger lines (default value: false)
Ganttitle
This is the environment for drawing the title section.
\startganttitle (...) \stopganttitle
Titleelement
This draws one element of the title.
\titleelement{label}{length}
Numtitle
This draws a numbered sequence of title elements.
\numtitle{start number}{increment}{end number}{length of each title element}
Ganttbar
This draws a single, unconnected bar for representing a task.
\ganttbar[pattern=value,color=value]{label}{start}{length}
The optional comma separated arguments are:
- <pattern> - TikZ pattern (e.g. north east lines (default), north west lines, crosshatch, crosshatch dots, grid, …) or see Regressions section for MetaPost
- <color> - a color of the pattern (e.g. black (default), red, green blue gray, dark gray)
Ganttcon
This draws an arrow between the bars specified by coordinates.
\ganttcon{startx}{starty}{endx}{endy}
Ganttbarcon
This draws a single bar and connects the bar with the previous bar for consecutive tasks.
\ganttbarcon[pattern=value,color=value]{label}{start}{length}
The optional pattern argument are the same as for \ganttbar.
Ganttgroup
This draws a bar to group tasks.
\ganttgroup{label}{start}{length}
Ganttmilestone
This draws a milestone using a diamond.
\ganttmilestone[color=value]{label}{start}
The optional color argument argument is:
- <color> - a color of the pattern (e.g. black (default), red, green blue gray, dark gray)
Ganttmilestonecon
This draws a milestone using a diamond and connects the milestone with the previous bar or milestone.
\ganttmilestonecon[color=value]{label}{start}
The optional color argument argument is:
- <color> - a color of the pattern (e.g. black (default), red, green blue gray, dark gray)
Examples
Minimal example
\usemodule[gantt] \setuppagenumbering[location=] \starttext \startgantt{7}{12} \startganttitle \numtitle{1}{1}{12}{1} \stopganttitle \ganttbar{a task}{0}{2} \ganttbarcon{a consecutive task}{2}{4} \ganttbarcon{another consecutive task}{8}{2} \ganttbar{another task}{2}{2} \ganttbar{another task}{4}{2} \ganttbar{another task}{4}{2} \ganttcon{4}{4}{4}{6} \stopgantt \stoptext
Similar example using names of calendar months
\usemodule[gantt] \setuppagenumbering[location=] \starttext \startgantt{3}{12} \startganttitle \titleelement{Jan}{1} \titleelement{Feb}{1} \titleelement{Mar}{1} \titleelement{Apr}{1} \titleelement{May}{1} \titleelement{Jun}{1} \titleelement{Jul}{1} \titleelement{Aug}{1} \titleelement{Sep}{1} \titleelement{Oct}{1} \titleelement{Nov}{1} \titleelement{Dec}{1} \stopganttitle \ganttbar{Task 1}{0}{2} \ganttbarcon{a consecutive task}{2}{4} \stopgantt \stoptext
Multiple titles with different length
\usemodule[gantt] \setuppagenumbering[location=] \starttext \startgantt{4}{12} \startganttitle \numtitle{2010}{1}{2012}{4} \stopganttitle \startganttitle \numtitle{1}{1}{4}{1} \numtitle{1}{1}{4}{1} \numtitle{1}{1}{4}{1} \stopganttitle \ganttbar{Task 1}{0}{2} \ganttbarcon{a consecutive task}{2}{4} \stopgantt \stoptext
Milestone example
\usemodule[gantt] \setuppagenumbering[location=] \starttext \startgantt{10}{12} \startganttitle \numtitle{1}{1}{12}{1} \stopganttitle \ganttbar{a task}{0}{2} \ganttbarcon{a consecutive task}{2}{4} \ganttbarcon{another consecutive task}{8}{2} \ganttmilestone[color=cyan]{Milestone with color!}{4} \ganttbar{another task}{2}{2} \ganttbar[color=cyan]{another coloured task}{4}{4} \ganttbar{another task}{4}{2} \ganttcon{4}{5}{4}{7} \ganttmilestonecon{A connected Milestone}{7} \ganttbarcon{another consecutive task}{8}{2} \stopgantt \stoptext
More complex example (using groups and optional arguments)
\usemodule[gantt] \setuppapersize[landscape][landscape] \setuplayout[scale=0.8] \setuppagenumbering[location=] \starttext \startgantt[xunitlength=0.5cm,fontsize=\tfx,titlefontsize=\tfx,drawledgerline=true]{10}{48} \startganttitle \titleelement{2009}{7} \numtitle{2010}{1}{2012}{12} \titleelement{2013}{5} \stopganttitle \startganttitle \numtitle{6}{1}{12}{1} \numtitle{1}{1}{12}{1} \numtitle{1}{1}{12}{1} \numtitle{1}{1}{12}{1} \numtitle{1}{1}{5}{1} \stopganttitle \ganttbar{task 1}{2}{17} \ganttgroup{a group of tasks}{6}{18} \ganttbar{task 2}{5}{10} \ganttbar[color=blue]{task 3}{15}{3} \ganttbar{task 4}{20}{3} \ganttcon{15}{4}{20}{6} \ganttbar{task 5}{15}{5} \ganttbarcon[color=red]{task 6}{20}{5} \ganttbarcon{task 7}{30}{5} \stopgantt \stoptext
Regressions
There are no default color patterns in MetaPost. This needs to be implemented separately in order to have a pattern option in this module.
As a temporary solution the hatching MetaPost package is used.