如何在 pgfganttchart 中获取对象坐标?

如何在 pgfganttchart 中获取对象坐标?

这个问题甘特图 - 列和行未对齐在甘特图中显示了一些未对齐的行。

在我看来,该包pgfgantt本身并没有提供所需的结果。但是,隔离所需的更改,可以通过将更复杂的 Tikz 对象放置在元素的左侧来引入这些更改\ganttbar(问题)但是,我没有找到如何分配或检索坐标,例如从放置的\ganttbar元素中。

作为示例,下面的代码取自 pgfgantt 手册,经过修改和调整以演示我的问题。

例如,不可能做某事,例如:

    \ganttbar{Task 1}{1}{2} (A) \\
...
    \node[green] at (A) {hi};

虽然可以将放置\node在绝对(甚至是猜测)坐标中,但请参见下面的蓝色文本。

我尝试使用特殊节点,bounding box但收效甚微。它没有显示蓝色甘特图的坐标,而是显示其他东西。

左侧用来记录任务名称的标签节点是否可以被替换、覆盖或访问?(此处为手动放置的蓝色文本,因此留空。)

\documentclass[10pt,border=3mm]{standalone}
\usepackage{pgfgantt}

\begin{document}
 \begin{ganttchart}{1}{12}
    \gantttitle{2011}{12} \\
    \gantttitlelist{1,...,12}{1} \\
    \ganttbar{Task 1}{1}{2} \\
    {
        \ganttbar[
            bar/.append style={draw=blue,fill=blue!20}
        ]{}{8}{12}
        [local bounding box=inner box]
        \node[red]  (inner box.east) {hi world};
    }
    
    \node[green] at (0,-1) {hi};
    \node[blue,anchor=east] at (0,-3.5) {show more complex things here};
\end{ganttchart}
\end{document}

结果

答案1

您可以使用name键将节点名称设置为特定的\ganttbar

\documentclass[border=10pt]{standalone}
\usepackage{pgfgantt}

\begin{document}
 \begin{ganttchart}{1}{12}
    \gantttitle{2011}{12} \\
    \gantttitlelist{1,...,12}{1} \\
    \ganttbar{Task 1}{1}{2} \\
    \ganttbar[
        bar/.append style={
            draw=blue,
            fill=blue!20,
        },
        name=foo
    ]{}{8}{12}
    
    \node[red, anchor=south] at (foo.north) {hi world};
    \node[green] at (foo) {hi};
    
    \node[blue, anchor=east] at (0,-3.5) {show more complex things here};    
\end{ganttchart}
\end{document}

在此处输入图片描述

相关内容