如何使用 pgfplot 设置图的高度?

如何使用 pgfplot 设置图的高度?

我以为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}

在此处输入图片描述

相关内容