移位堆叠 ybar 图

移位堆叠 ybar 图

使用堆叠 ybar 图时,每个堆叠列都从 y=0 开始。我想垂直移动数据 B 的堆叠列,以便其下端与数据 A 的堆叠列的上端水平对齐(此处:y = 2 + 1 + 2.5 = 5.5)。

\documentclass{article}
\usepackage{pgfplots}
\begin{document}
    \begin{tikzpicture}
        \begin{axis}[ybar stacked]
            
            % Data A
            \addplot[] coordinates {(1,2) (2,0)};
            \addplot[] coordinates {(1,1) (2,0)};
            \addplot[] coordinates {(1,2.5) (2,0)};
            
            % Data B
            \addplot[] coordinates {(1,0) (2,1)};
            \addplot[] coordinates {(1,0) (2,1.5)};
            
        \end{axis}
    \end{tikzpicture}
\end{document}

有简单的解决办法吗?

答案1

我认为,您显示的坐标过度定义了图表。给出以下内容应该就足够了,这将自动产生所需的输出(如果我理解正确的话,但我并不完全确定):

\documentclass[border=10pt]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.18}

\begin{document}
    \begin{tikzpicture}
        \begin{axis}[ybar stacked, ymin=0, xtick={1,2}]
            
            % Data A
            \addplot[] coordinates {(1,2)};
            \addplot[] coordinates {(1,1)};
            \addplot[] coordinates {(1,2.5)};
            
            % Data B
            \addplot[] coordinates {(2,1)};
            \addplot[] coordinates {(2,1.5)};
            
        \end{axis}
    \end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容