以毫秒为输入的甘特图

以毫秒为输入的甘特图

我想创建一个与甘特图非常相似的图表。但它涉及工作流程执行的运行时间,时间范围从几毫秒到数周不等……

我正在看普吉特但我真的不知道如何给出我的时间。我的第一个想法是像这样使用毫秒:

\begin{ganttchart}{1}{1530176220-1530175200}
    \ganttbar{fooer}{0}{1530175800-1530175200} \\
    \ganttbar{foo2bar}{1530175800-1530175200}{1530176220-1530175200} \\
\end{ganttchart}

但是这给出了:! Dimension too large.,在我看来,其他支持的格式似乎处理年月日,但我还需要精确到毫秒。我还能以某种巧妙的方式使用 pgfgantt 包吗?

答案1

如果数字太大,一种可能的解决方案是将它们缩小。在下面的例子中,毫秒是从预定义时间 (hh:mm) 开始给出的,然后除以 100(即单位为 0.1 秒)。标题列表以秒为单位给出。

为了在图表上显示,时间戳(非常简单)是通过打印开始时间后的秒数并在必要时添加前导零来构建的。当然,可以通过考虑分钟、小时、闰秒等来改进此计算。

请注意,新命令最初并未展开,以防止唤醒黑色 LaTeX 末日巫师和神秘错误。

梅威瑟:

\documentclass{standalone}
\usepackage{pgfgantt}
% add leading zero
\newcommand{\showtimestamp}[2]{#1:\pgfmathparse{#2<10?"0":{},#2}\pgfmathresult}
\begin{document}

\begin{ganttchart}{1}{50}
\gantttitle{Thursday 8:36am}{50} \\
\gantttitlelist[
    title list options=%
    {var=\y, evaluate=\y as \x using "\noexpand\showtimestamp{8:36}{\y}"}
]{0,...,4}{10} \\
\ganttbar{fooer}{2.0}{8.0} \\
\ganttbar{foo2bar}{8.0}{12.2} \\
\ganttbar{baz}{25.0}{40.0}
\end{ganttchart}

\end{document}

部分结果:

在此处输入图片描述

相关内容