Difference between revisions of "Gantt"

From ConTeXt wiki
(update to match new verison (3.2))
(redirecting to "Gantt charts")
 
Line 1: Line 1:
< [[Modules]] | [[Graphics]] | [[Gantt charts]] | [[MetaPost]] >
+
#REDIRECT [[Gantt charts]]
 
 
This is a module for drawing Gantt diagrams via [[MetaPost]].
 
 
 
It is the recommended way of creating Gantt charts within ConTeXt.
 
 
 
[http://tlcontrib.metatex.org/cgi-bin/package.cgi/action=view/id=566 Gantt] is included as a (third party) [http://tlcontrib.metatex.org module] for ConTeXt.
 
 
 
== Description ==
 
 
 
This is a rewrite of the [[Gantt-tikz]] module using MetaPost. It shares the same syntax and features and should produce a similar output as the TikZ version.
 
 
 
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:
 
 
 
* ''sx'' - horizontal scale factor (default: 1)
 
* ''sy'' - vertical 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>'' - not implemented, see [[Gantt#Regressions | Regressions]] section
 
* ''<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>
 
 
 
[[Image:Gantt_example1.png|653px]]
 
 
 
 
 
=== 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>
 
 
 
[[Image:Gantt_example2.png|607px]]
 
 
 
 
 
=== 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>
 
 
 
[[Image:Gantt_example3.png|607px]]
 
 
 
 
 
=== 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>
 
 
 
[[Image:Gantt_example5.png|650px]]
 
 
 
 
 
=== 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>
 
 
 
[[Image:Gantt_example4.png|838px]]
 
 
 
 
 
== 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.
 
 
 
The temporary solution in this module uses the [http://www.ctan.org/tex-archive/graphics/metapost/contrib/macros/hatching/ hatching] MetaPost package.
 
 
 
== See also ==
 
 
 
* [[Gantt-tikz]]
 
 
 
 
 
''The package maintainer is [http://wiki.contextgarden.net/User:M%C3%A6stro Adam Reviczky] and it is released as Public Domain.''
 
 
 
[[Category:Modules]]
 
[[Category:Graphics]]
 
[[Category:Metapost]]
 

Latest revision as of 17:31, 11 September 2011

Redirect to: