使用堆叠 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}