答案1
我认为甘特图是可行的方法,通过查看你的例子,使用pgfgantt
包。我没有把它们做得像你的例子那么花哨,但我相信你只用这个包就可以做得很接近。作为示例,这是我为项目快速定义的甘特图:
我想我花了大约一个小时来创建此设置的“模板”,并根据当前项目对其进行调整,填充它需要大约十分钟的工作。但是,要制作一个像您列出的一样漂亮的模板,需要花费更多的时间来创建一个漂亮的模板,而不是我在这里展示的基本模板。也许使用以下组合pgfgantt
和tikz
会带你到达那里,但我不能给你提供更多帮助。
也许您会花很长时间来定义一个漂亮的模板,但一旦掌握它,它就很容易用于未来的项目。
编辑:我的示例代码
根据评论中的要求,这是我用于甘特图的代码。条形图的类型等在序言中定义。我在 ganttchart 命令 ( \begin{ganttchart}[options]
) 的选项中定义了网格和总体布局。之后,我只需用条形图填充网格,然后将它们全部链接起来。
这是一个非常基本的设置,但它允许我使用日期插入网格,这(就我而言)非常有用,因为我通常将日期写在时间轴的其他地方。然后我链接正确的元素并在属于同一组的元素上方绘制一个组(在示例中,橙色、蓝色和绿色线条)。
因此,每当我制作新的甘特图时,我都会使用这里列出的相同代码,而没有任何内容在\begin{ganttchart}[options]
和之间\end{ganttchart}
,然后我调整网格的日期以匹配我的日期,然后我开始用条形图、链接和组填充它。
\documentclass{standalone}
\usepackage{color}
\usepackage{tikz}
\usepackage{pgfgantt}
%Used to draw gantt charts, which I will use for the calendar.
%Let's define some awesome new ganttchart elements:
\newganttchartelement{orangebar}{
orangebar/.style={
inner sep=0pt,
draw=red!66!black,
very thick,
top color=white,
bottom color=orange!80
},
orangebar label font=\slshape,
orangebar left shift=.1,
orangebar right shift=-.1
}
\newganttchartelement{bluebar}{
bluebar/.style={
inner sep=0pt,
draw=purple!44!black,
very thick,
top color=white,
bottom color=blue!80
},
bluebar label font=\slshape,
bluebar left shift=.1,
bluebar right shift=-.1
}
\newganttchartelement{greenbar}{
greenbar/.style={
inner sep=0pt,
draw=green!50!black,
very thick,
top color=white,
bottom color=green!80
},
greenbar label font=\slshape,
greenbar left shift=.1,
greenbar right shift=-.1
}
\begin{document}
\begin{ganttchart}[
hgrid style/.style={black, dotted},
vgrid={*5{black,dotted}, *1{white, dotted}, *1{black, dashed}},
x unit=3mm,
y unit chart=9mm,
y unit title=12mm,
time slot format=isodate,
group label font=\bfseries \Large,
link/.style={->, thick}
]{2014-09-22}{2014-12-21}
\gantttitlecalendar{year, month=name, week}\\
\ganttgroup[
group/.append style={fill=orange}
]{IMKL Reader}{2014-09-22}{2014-11-9}\\ [grid]
\ganttorangebar[
name=Documentation
]{Documentation}{2014-09-23}{2014-09-23}\\ [grid]
\ganttorangebar[
name=FMETutorial
]{FME Tutorial}{2014-09-24}{2014-09-26}\\ [grid]
\ganttorangebar[
name=FME
]{FME}{2014-09-30}{2014-10-03}
\ganttlinkedorangebar{}{2014-10-7}{2014-10-10}
\ganttlinkedorangebar{}{2014-10-14}{2014-10-15}
\ganttlinkedorangebar{}{2014-10-17}{2014-10-17}
\ganttlinkedorangebar[name=FMEend]{}{2014-10-21}{2014-10-24}
\ganttlinkedorangebar{}{2014-10-28}{2014-10-31}\\ [grid]
\ganttorangebar[name=Manual]{Manual}{2014-10-30}{2014-10-31}
\ganttlinkedorangebar{}{2014-11-4}{2014-11-7} \ganttnewline[thick, black]
\ganttgroup[
group/.append style={fill=blue}
]{Test Cases}{2014-10-27}{2014-11-9}
\ganttgroup[
group/.append style={fill=blue}
]{}{2014-11-17}{2014-12-19}\\ [grid]
\ganttbluebar{Innocent testing}{2014-10-30}{2014-10-31}
\ganttlinkedbluebar[name=Innocent]{}{2014-11-4}{2014-11-7}
\ganttlinkedbluebar{}{2014-12-4}{2014-12-5}
\ganttlinkedbluebar{}{2014-12-9}{2014-12-10}\\ [grid]
\ganttbluebar{Test Case Testing}{2014-11-6}{2014-11-7}
\ganttlinkedbluebar{}{2014-11-18}{2014-11-19}
\ganttlinkedbluebar{}{2014-11-24}{2014-11-27}
\ganttlinkedbluebar{}{2014-12-1}{2014-12-4}
\ganttlinkedbluebar{}{2014-12-10}{2014-12-10}
\ganttlinkedbluebar{}{2014-12-16}{2014-12-16}\\ [grid]
\ganttbluebar[name=Writing]{Writing}{2014-11-18}{2014-11-19}
\ganttlinkedbluebar{}{2014-11-24}{2014-11-28}
\ganttlinkedbluebar{}{2014-12-4}{2014-12-4}
\ganttlinkedbluebar{}{2014-12-10}{2014-12-10}
\ganttlinkedbluebar{}{2014-12-16}{2014-12-16}\ganttnewline[thick, black]
\ganttgroup[
group/.append style={fill=green}
]{KLIP Manager}{2014-11-3}{2014-11-9}
\ganttgroup[
group/.append style={fill=green}
]{}{2014-11-17}{2014-11-23}\\ [grid]
\ganttgreenbar{Manual}{2014-11-4}{2014-11-7}
\ganttlinkedgreenbar{}{2014-11-18}{2014-11-19}
%Implementing links
\ganttlink[link mid=0.75]{Documentation}{FME}
\ganttlink{FMETutorial}{FME}
\end{ganttchart}
\end{document}