我以为height
传递给的选项\nextgroupplot
是我需要的,但事实并非如此。正如您可能在图片中看到的那样,第二个图的高度不是第一个图的两倍。那么我怎样才能让第二个图的高度是第一个图的两倍呢?
奖金:准确地说,我想要的是,第一个图的 y 轴上距离 1 与第二个图的 y 轴上距离 1 相同。
\documentclass[]{standalone}
\usepackage{pgfplots}
\usepgfplotslibrary{groupplots}
\pgfplotsset{compat=1.14}
\begin{document}
\begin{tikzpicture}
\begin{groupplot}[
group style={
group size=1 by 2,
vertical sep=12pt,
group name=G},
axis x line=center, axis y line=center,
xmin = 0, xmax = 4.2
]
\nextgroupplot[
width = \textwidth, height = 0.2*\textwidth,
ymin = 0, ymax = 1.2
]
\draw (0,0)
-| (.75,1) -| (1,0)
-| (1.75,1) -| (2,0)
-| (2.75,1) -| (3,0)
-| (3.75,1) -| (4,0)
-| (4.75,1) -| (5,0);
\nextgroupplot[
width = \textwidth, height = 0.4*\textwidth,
ymin = -1.2, ymax = 1.2
]
\draw (0,1)
-| (.75,-1) -| (1,1)
-| (1.75,-1) -| (2,1)
-| (2.75,-1) -| (3,1)
-| (3.75,-1) -| (4,1)
-| (4.75,-1) -| (5,1);
\end{groupplot}
\end{tikzpicture}
\end{document}
答案1
我认为您正在寻找unit vector ratio
。这确保 y 单位在两个图中具有相同的含义。正如 Torbjørn T. 在评论中提到的那样这个问题,高度表示包括所有东西的高度,也包括勾选标签。
\documentclass[]{standalone}
\usepackage{pgfplots}
\usepgfplotslibrary{groupplots}
\pgfplotsset{compat=1.14}
\begin{document}
\begin{tikzpicture}
\begin{groupplot}[
group style={
group size=1 by 2,
vertical sep=12pt,
group name=G},
axis x line=center, axis y line=center,
xmin = 0, xmax = 4.2,unit vector ratio=2 1,width = \textwidth
]
\nextgroupplot[
ymin = 0, ymax = 1.2
]
\draw (0,0)
-| (.75,1) -| (1,0)
-| (1.75,1) -| (2,0)
-| (2.75,1) -| (3,0)
-| (3.75,1) -| (4,0)
-| (4.75,1) -| (5,0);
\nextgroupplot[
ymin = -1.2, ymax = 1.2
]
\draw (0,1)
-| (.75,-1) -| (1,1)
-| (1.75,-1) -| (2,1)
-| (2.75,-1) -| (3,1)
-| (3.75,-1) -| (4,1)
-| (4.75,-1) -| (5,1);
\end{groupplot}
\end{tikzpicture}
\end{document}