pgfgantt 4.0 的甘特图 - 倾斜问题

pgfgantt 4.0 的甘特图 - 倾斜问题

我不知道我做错了什么。我正在尝试使用pgfgantt包。我做了一些研究,阅读了手册,但结果让我完全困惑。我似乎无法理解到底发生了什么。

在此处输入图片描述

我想做以下事情:

  • 使主标题居中;排序,参见编辑,
  • 减少所有标题之间的间距,
  • 减小第一个至第三个标题的大小,
  • 增加第四个标题的大小(包含星期日期),
  • 最后旋转最后一个标题中的标签,以便日/月形式的周数能够适合单元格。

最大的问题是标题间距和大小!我尝试阅读手册,尝试自己弄清楚,但在这个阶段,它太复杂了,无法理解。任何帮助我都会很感激。谢谢

下面是 MWE,用于在图片上显示我的结果。我使用 pgfgantt v 4.0,我认为它与以前的版本不兼容。

\documentclass[a4paper,landscape]{article}

\usepackage{graphicx}
\usepackage[a4paper, landscape, margin=0.5in]{geometry}
\usepackage[usernames,dvipsnames,svgnames,table]{xcolor}
\usepackage{pgfgantt}
\ganttset{calendar week text={\small{\startday/\startmonth}}}

\begin{document}
\begin{figure}[h!bt]
\begin{center}
\begin{ganttchart}[
    hgrid,
    vgrid={*6{draw=none}, dotted},
    bar/.append style={fill=black},
    bar incomplete/.append style={fill=white},
    time slot format=isodate,
    time slot format/base century=2000,
    x unit=0.062cm,
    y unit chart=0.6cm,
    bar top shift=0.1,
    bar height=0.8,
    title label font=\bfseries\normalsize,
    time slot format/start date=2018-01-01]{2018-01-01}{2018-12-30}
\gantttitle[y unit title=1cm, title height=0.75]{TITLE}{0}{52}\\
\gantttitlecalendar[y unit title=1cm, title height=0.75]{year, month=shortname}\\
\gantttitlecalendar[y unit title=1cm, title height=0.75]{week}\\
\ganttbar{Short}{2018-01-01}{2018-01-15}\\
\ganttbar{Widerrr}{2018-01-16}{2018-02-28}\\
\ganttbar{Long long long long }{2018-03-01}{2018-05-31}\\
\ganttbar{Midium long}{2018-06-01}{2018-08-31}\\
\ganttbar{Project X}{2018-09-01}{2018-12-30}
\end{ganttchart}
\end{center}
\end{figure}
\end{document}

编辑。

我在代码中发现了一个错误。要使标题居中,我只需要提供一行中所有单元格的编号:

 \gantttitle{TITLE}{364}

答案1

y unit title标题行之间的间隙由(即标题的高度加上间隙)和 (title height即用于标题的第一个 的比例)决定。例如y unit title=1cmtitle height=0.75 导致 0.25 厘米的高度间隙。title height=1因此设置将消除间隙。

由于周的标题行较高,因此会与条形图重叠。因此,我使用选项添加了一条不可见的标题行,title/.style={opacity=0}以便为其腾出空间。

标题行中的标签可以使用选项进行旋转title label node/.append style={rotate=90}

其结果是:

在此处输入图片描述

代码:

\documentclass[a4paper,landscape]{article}

\usepackage{graphicx}
\usepackage[a4paper, landscape, margin=0.5in]{geometry}
\usepackage[usernames,dvipsnames,svgnames,table]{xcolor}
\usepackage{pgfgantt}
\ganttset{calendar week text={\small{\startday/\startmonth}}}

\begin{document}
\begin{figure}[h!bt]
\begin{center}
\begin{ganttchart}[
    hgrid,
    vgrid={*6{draw=none}, dotted},
    bar/.append style={fill=black},
    bar incomplete/.append style={fill=white},
    time slot format=isodate,
    time slot format/base century=2000,
    x unit=0.062cm,
    y unit chart=0.6cm,
    y unit title=0.6cm, % height of title line and gap
    title height=1, % use full height for title, leaving no gap
    bar top shift=0.1,
    bar height=0.8,
    title label font=\bfseries\normalsize,
    time slot format/start date=2018-01-01]{2018-01-01}{2018-12-30}
\gantttitle{TITLE}{364}\\
\gantttitlecalendar{year, month=shortname}\\
%                   increase height   rotate label
\gantttitlecalendar[title height=1.8, title label node/.append style={rotate=90}]{week}\\
\gantttitle[title/.style={opacity=0}]{}{364}\\ % invisible title to make room for previous higher line
\ganttbar{Short}{2018-01-01}{2018-01-15}\\
\ganttbar{Widerrr}{2018-01-16}{2018-02-28}\\
\ganttbar{Long long long long }{2018-03-01}{2018-05-31}\\
\ganttbar{Midium long}{2018-06-01}{2018-08-31}\\
\ganttbar{Project X}{2018-09-01}{2018-12-30}
\end{ganttchart}
\end{center}
\end{figure}
\end{document}

相关内容