Difference between revisions of "Gantt charts"

From Wiki
Jump to navigation Jump to search
(adjusted to the gantt module in garden)
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
< [[Modules]] | [[Graphics]] | [[Gantt charts]] | [[MetaPost]] | [[TikZ]] >
+
< [[Modules]] | [[Graphics]] | [[MetaPost]] | [[TikZ]] >
  
[http://modules.contextgarden.net/gantt Gantt] is a (third party) [[Modules | ConTeXt module]] for drawing Gantt charts via MetaPost or PGF/TikZ.
+
[http://modules.contextgarden.net/gantt Gantt] is a (third party) ConTeXt module for drawing Gantt charts via MetaPost or PGF/TikZ.
  
 
== Description ==
 
== Description ==
  
 
To switch between the two drawing engines (MetaPost and TikZ) use the style option.
 
To switch between the two drawing engines (MetaPost and TikZ) use the style option.
<texcode>\usemodule[gantt][style=mp]</texcode>
+
<texcode>\usemodule[gantt][alternative=mp]</texcode>
<texcode>\usemodule[gantt][style=tikz]</texcode>
+
<texcode>\usemodule[gantt][alternative=tikz]</texcode>
  
 
The default engine is MetaPost.
 
The default engine is MetaPost.
Line 19: Line 19:
 
The optional argument [...] can be filled in a key=value syntax, using one or more of the following keys:
 
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)
+
* ''factor'' - MetaPost scale factor (default: 1)
 
* ''xunitlength'' - length of one time slot (default: 1cm)
 
* ''xunitlength'' - length of one time slot (default: 1cm)
* ''fontsize'' - fontsize of labels (default: \tf)
+
* ''style'' - fontsize of labels (default: \tf)
* ''titlefontsize'' - fontsize of title section (default: \tfx)
+
* ''titlestyle'' - fontsize of title section (default: \tfx)
 
* ''drawledgerline'' - switch to enable/disable the drawing of horizontal ledger lines (default value: false)
 
* ''drawledgerline'' - switch to enable/disable the drawing of horizontal ledger lines (default value: false)
  
Line 179: Line 179:
  
 
\starttext
 
\starttext
   \startgantt[xunitlength=0.5cm,fontsize=\tfx,titlefontsize=\tfx,drawledgerline=true]{10}{48}
+
   \startgantt[xunitlength=0.5cm,style=\tfx,titlestyle=\tfx,drawledgerline=true]{10}{48}
 
     \startganttitle
 
     \startganttitle
 
       \titleelement{2009}{7}
 
       \titleelement{2009}{7}

Revision as of 06:12, 15 September 2011

< Modules | Graphics | MetaPost | TikZ >

Gantt is a (third party) 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.

\usemodule[gantt][alternative=mp]
\usemodule[gantt][alternative=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:

  • factor - MetaPost scale factor (default: 1)
  • xunitlength - length of one time slot (default: 1cm)
  • style - fontsize of labels (default: \tf)
  • titlestyle - 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,style=\tfx,titlestyle=\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.

See also