甘特图:如何使用 pgfgantt 制作像 MS Project 中的月份和日期

甘特图:如何使用 pgfgantt 制作像 MS Project 中的月份和日期

在此处输入图片描述

在附图中,标题包括 96 年 6 月 23 日和 M、T、W、T、F、S。我需要从 2014 年 6 月 17 日至 2014 年 7 月 31 日开始该项目。如何使用 pgfgantt 执行相同操作。如能得到任何帮助,我将不胜感激。

我的代码如下:

\documentclass[tikz]{standalone}
\usepackage{pgfgantt}
\title{Gantt Charts with the pgfgantt Package}
\begin{document}

%
%
\definecolor{barblue}{RGB}{153,204,254}
\definecolor{groupblue}{RGB}{51,102,254}
\definecolor{linkred}{RGB}{165,0,33}
\renewcommand\sfdefault{phv}
\renewcommand\mddefault{mc}
\renewcommand\bfdefault{bc}
\setganttlinklabel{s-s}{START-TO-START}
\setganttlinklabel{f-s}{}%{FINISH-TO-START}
\setganttlinklabel{f-f}{FINISH-TO-FINISH}
\sffamily
\begin{ganttchart}[
    canvas/.append style={fill=none, draw=black!5, line width=.75pt},
    hgrid style/.style={draw=black!5, line width=.75pt},
    vgrid={*1{draw=black!5, line width=.75pt}},
    today=32,
    today rule/.style={
      draw=black!34,
      dash pattern=on 3.5pt off 4.5pt,
      line width=1.5pt
    },
    today label font=\small\bfseries,
    title/.style={draw=none, fill=none},
    title label font=\bfseries\footnotesize,
    title label node/.append style={below=7pt},
    include title in canvas=false,
    bar label font=\mdseries\small\color{black!70},
    bar label node/.append style={left=2cm},
    bar/.append style={draw=none, fill=black!63},
    bar incomplete/.append style={fill=barblue},
    bar progress label font=\mdseries\footnotesize\color{black!70},
    group incomplete/.append style={fill=groupblue},
    group left shift=0,
    group right shift=0,
    group height=.5,
    group peaks tip position=0,
    group label node/.append style={left=.6cm},
    group progress label font=\bfseries\small,
    link/.style={-latex, line width=1.5pt, linkred},
    link label font=\scriptsize\bfseries,
    link label node/.append style={below left=-2pt and 0pt}
  ]{1}{39}
  \gantttitle[
    title label node/.append style={below left=7pt and -3pt}
  ]{DAYS:\quad1}{1}
  \gantttitlelist{2,...,39}{1} \\
  \ganttgroup[progress=100]{Analysis}{1}{30} \\
  \ganttbar[
    progress=100,
    name=WBS1A
  ]{\textbf{Risk Analysis}}{1}{8} \\
  \ganttbar[
    progress=100,
    name=WBS1B
  ]{\textbf{System Requirement Specification}}{9}{10} \\
  \ganttbar[
    progress=100,
    name=WBS1C
  ]{\textbf{Functional Specification}}{11}{25} \\
  \ganttbar[
    progress=100,
    name=WBS1D
  ]{\textbf{Project Plan}}{26}{29} \\
  \ganttbar[
    progress=100,
    name=WBS1E
  ]{\textbf{Project Schedule}}{30}{30} \\
  \ganttgroup[progress=70]{Design}{31}{32} \\
  \ganttbar[progress=70]{\textbf{High Level Design}}{31}{32} \\
  \ganttgroup[progress=0]{Coding}{33}{39} \\
  \ganttbar[progress=0]{\textbf{Building Prototype}}{33}{39} \\
  \ganttlink[link type=f-s]{WBS1A}{WBS1B}
  \ganttlink[link type=f-s]{WBS1B}{WBS1C}
  \ganttlink[
    link type=f-s,
    link label node/.append style=left
  ]{WBS1C}{WBS1D}
  \ganttlink[
    link type=f-s,
    link label node/.append style=left
  ]{WBS1D}{WBS1E}
\end{ganttchart}

\end{document}

答案1

这似乎工作正常(欢迎提出建议):

\documentclass[tikz]{standalone}
\usepackage{pgfgantt}
\title{Gantt Charts with the pgfgantt Package}
\begin{document}

%
%
\definecolor{barblue}{RGB}{153,204,254}
\definecolor{groupblue}{RGB}{51,102,254}
\definecolor{linkred}{RGB}{150,150,150}
\renewcommand\sfdefault{phv}
\renewcommand\mddefault{mc}
\renewcommand\bfdefault{bc}
\sffamily

\ganttset
{%
calendar week text={%
\pgfcalendarmonthshortname{\startmonth}~\startday,\startyear%
}%
}

\begin{ganttchart}[
    canvas/.append style={fill=none, draw=black!5, line width=.75pt},
    hgrid style/.style={draw=black!6, line width=.75pt},
    vgrid={*1{draw=black!6, line width=.75pt}},
    today=2014-07-23,
    today rule/.style={
      draw=black!34,
      dash pattern=on 3.5pt off 4.5pt,
      line width=1.5pt
    },
    today label font=\small\bfseries,
    title/.style={draw=none, fill=none},
    title label font=\bfseries\footnotesize,
    title label node/.append style={below=7pt},
    include title in canvas=false,
    bar label font=\mdseries\small\color{black!70},
    bar label node/.append style={left=2cm},
    bar/.append style={draw=none, fill=black!63},
    bar incomplete/.append style={fill=barblue},
    bar progress label font=\mdseries\footnotesize\color{black!70},
    group incomplete/.append style={fill=groupblue},
    group left shift=0,
    group right shift=0,
    group height=.5,
    group peaks tip position=0,
    group label node/.append style={left=.6cm},
    group progress label font=\bfseries\small,
    link/.style={-latex, linkred},
    link label font=\scriptsize\bfseries,
    %link label node/.append style={below left=-2pt and 0pt}
    time slot format=isodate
  ]{2014-06-17}{2014-07-31}
  % top nodes
\ganttbar[name=holiday-2014-06-22-top,bar/.style={fill=none, draw=none}]{}{2014-06-22}{2014-06-22}
\ganttbar[name=holiday-2014-06-29-top,bar/.style={fill=none, draw=none}]{}{2014-06-29}{2014-06-29}
\ganttbar[name=holiday-2014-07-6-top,bar/.style={fill=none, draw=none}]{}{2014-07-6}{2014-07-6}
\ganttbar[name=holiday-2014-07-12-top,bar/.style={fill=none, draw=none}]{}{2014-07-12}{2014-07-12}
\ganttbar[name=holiday-2014-07-13-top,bar/.style={fill=none, draw=none}]{}{2014-07-13}{2014-07-13}
\ganttbar[name=holiday-2014-07-20-top,bar/.style={fill=none, draw=none}]{}{2014-07-20}{2014-07-20}
\ganttbar[name=holiday-2014-07-27-top,bar/.style={fill=none, draw=none}]{}{2014-07-27}{2014-07-27}

  \gantttitlecalendar{week, day} \\



  \ganttgroup[progress=100]{Analysis}{2014-06-17}{2014-07-22} \\
  \ganttbar[
    progress=100,
    name=WBS1A
  ]{\textbf{Risk Analysis}}{2014-06-17}{2014-06-25} \\
  \ganttbar[
    progress=100,
    name=WBS1B
  ]{\textbf{System Requirement Specification}}{2014-06-26}{2014-06-27} \\
  \ganttbar[
    progress=100,
    name=WBS1C
  ]{\textbf{Functional Specification}}{2014-06-28}{2014-07-16} \\
  \ganttbar[
    progress=100,
    name=WBS1D
  ]{\textbf{Project Plan}}{2014-07-17}{2014-07-21} \\
  \ganttbar[
    progress=100,
    name=WBS1E
  ]{\textbf{Project Schedule}}{2014-07-22}{2014-07-22} \\ 
  \ganttmilestone[name=M1]{Analysis Completion}{2014-07-21} \ganttnewline [grid]
  \ganttgroup[progress=100]{Design}{2014-07-23}{2014-07-23} \\
  \ganttbar[progress=100,name=WBS2A]{\textbf{High Level Design}}{2014-07-23}{2014-07-23} \\
  \ganttmilestone[name=M2]{Design Completion}{2014-07-22} \ganttnewline [grid]
  \ganttgroup[progress=0]{Coding}{2014-07-24}{2014-07-31} \\
  %\ganttbar[prog=50:  Resource 1]{Task 1}{2014-07-24}{2} \\ 
  \ganttbar[progress=0,name=WBS3A]{\textbf{Building Prototype}}{2014-07-24}{2014-07-31} \\
  \ganttmilestone[name=M3]{Code Completion}{2014-07-30} \ganttnewline [grid]
  \ganttlink[]{WBS1A}{WBS1B}
  \ganttlink[]{WBS1B}{WBS1C}
  \ganttlink[]{WBS1C}{WBS1D}
  \ganttlink[]{WBS1D}{WBS1E}
  \ganttlink[]{WBS1E}{M1}
  \ganttlink[]{M1}{WBS2A}
  \ganttlink[]{WBS2A}{M2}
  \ganttlink[]{M2}{WBS3A}
  \ganttlink[]{WBS3A}{M3}

    % bottom nodes
\ganttbar[name=holiday-2014-06-22-bottom,bar/.style={fill=none, draw=none}]{}{2014-06-22}{2014-06-22}
\ganttbar[name=holiday-2014-06-29-bottom,bar/.style={fill=none, draw=none}]{}{2014-06-29}{2014-06-29}
\ganttbar[name=holiday-2014-07-6-bottom,bar/.style={fill=none, draw=none}]{}{2014-07-6}{2014-07-6}
\ganttbar[name=holiday-2014-07-12-bottom,bar/.style={fill=none, draw=none}]{}{2014-07-12}{2014-07-12}
\ganttbar[name=holiday-2014-07-13-bottom,bar/.style={fill=none, draw=none}]{}{2014-07-13}{2014-07-13}
\ganttbar[name=holiday-2014-07-20-bottom,bar/.style={fill=none, draw=none}]{}{2014-07-20}{2014-07-20}
\ganttbar[name=holiday-2014-07-27-bottom,bar/.style={fill=none, draw=none}]{}{2014-07-27}{2014-07-27}

  % shading
\begin{scope}
\draw [opacity=0.05,line width=12,color=brown] (holiday-2014-06-22-top) -- (holiday-2014-06-22-bottom);
\draw [opacity=0.05,line width=12,color=brown] (holiday-2014-06-29-top) -- (holiday-2014-06-29-bottom);
\draw [opacity=0.05,line width=12,color=brown] (holiday-2014-07-6-top) -- (holiday-2014-07-6-bottom);
\draw [opacity=0.05,line width=12,color=brown] (holiday-2014-07-12-top) -- (holiday-2014-07-12-bottom);
\draw [opacity=0.05,line width=12,color=brown] (holiday-2014-07-13-top) -- (holiday-2014-07-13-bottom);
\draw [opacity=0.05,line width=12,color=brown] (holiday-2014-07-20-top) -- (holiday-2014-07-20-bottom);
\draw [opacity=0.05,line width=12,color=brown] (holiday-2014-07-27-top) -- (holiday-2014-07-27-bottom);
\end{scope}

\end{ganttchart}

\end{document}

相关内容