如何创建甘特图?

如何创建甘特图?

我想在 LaTeX 中创建以下图片。我搜索了很多,但没有找到有关甘特图的任何信息。

在此处输入图片描述

答案1

我认为甘特图是可行的方法,通过查看你的例子,使用pgfgantt包。我没有把它们做得像你的例子那么花哨,但我相信你只用这个包就可以做得很接近。作为示例,这是我为项目快速定义的甘特图: 在此处输入图片描述

我想我花了大约一个小时来创建此设置的“模板”,并根据当前项目对其进行调整,填充它需要大约十分钟的工作。但是,要制作一个像您列出的一样漂亮的模板,需要花费更多的时间来创建一个漂亮的模板,而不是我在这里展示的基本模板。也许使用以下组合pgfgantttikz会带你到达那里,但我不能给你提供更多帮助。

也许您会花很长时间来定义一个漂亮的模板,但一旦掌握它,它就很容易用于未来的项目。


编辑:我的示例代码

根据评论中的要求,这是我用于甘特图的代码。条形图的类型等在序言中定义。我在 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}

相关内容