使用 groupplot 与基线对齐

使用 groupplot 与基线对齐

在 pgfplots 中使用 groupplot 时,是否可以

  1. 指定baseline适用于哪个子图?
  2. 自动设置绘图的总高度还是设置为先前绘图的高度?

具体来说,使用下面的代码,baseline与第一个组图对齐,而不是最后一个或最南边的图。基线与第一个图对齐,而不是最后一个图

另外,我知道高度是两倍,但我希望高度与之前的图形相同。我宁愿不为所有之前的图指定高度,而只指定宽度,这样如果我需要指定高度,也许我可以找到之前图形的高度(?)。但是,当我为两者指定高度时(取消注释这两行),两个图的高度并不相等。两块地之间的高度不相等

\documentclass[12pt]{article}
\usepackage{tikz, pgfplots}
\pgfplotsset{compat=1.10}
\usepgfplotslibrary{groupplots}
\begin{document}
\begin{figure}
    \centering
    \begin{tabular}{cc}
        {\Large{\textbf{A}}}%
        \begin{tikzpicture}[baseline]
            \begin{axis}[
                    width=0.5\textwidth,
%                     height=0.5\textwidth,
                    xlabel=X,
                    ylabel=Y,
                    title=This is a title,
                ]
                \addplot {x^(1/3)};
            \end{axis}
        \end{tikzpicture}&%
        {\Large{\textbf{B}}}%
        \begin{tikzpicture}[baseline]
            \begin{groupplot}[
                    group style={
                        group size=1 by 2,
                        horizontal sep=0pt,
                        vertical sep=0pt,
                        x descriptions at=edge bottom,
                    },
                    width=0.5\textwidth,
%                     height=0.5\textwidth/2,
                    xlabel=X,
                    ylabel=Y,
                ]
                \nextgroupplot[title=This is a title]
                \addplot {x^(1/3)};
                \nextgroupplot
                \addplot {x^(1/3)};
            \end{groupplot}
        \end{tikzpicture}%
    \end{tabular}
\end{figure}
\end{document} 

答案1

对于第一个问题,将 a 添加name到第二个问题groupplot并使用baseline=nameofgroupplot.south

对于第二个问题,我没有好的解决方案。您可以通过scale only axis在各处添加来获得正确的高度(对于这种情况)。我怀疑高度错误的原因是首先缩放了组图,然后将它们移得更近(vertical sep=0pt)。或者其他原因。最终的总高度无论如何都小于指定的长度。您scale only axis可以避免这种情况。

在此处输入图片描述

\documentclass[12pt]{article}
\usepackage{tikz, pgfplots}
\pgfplotsset{compat=1.10}
\usepgfplotslibrary{groupplots}
\begin{document}
\begin{figure}
    \centering
    \begin{tabular}{cc}
        {\Large{\textbf{A}}}%
        \begin{tikzpicture}[baseline]
            \begin{axis}[
                    width=0.33\textwidth,
                    height=0.33\textwidth,
                    xlabel=X,
                    ylabel=Y,
                    title=This is a title,scale only axis
                ]
                \addplot {x^(1/3)};
            \end{axis}
        \end{tikzpicture}&%
        {\Large{\textbf{B}}}%
        \begin{tikzpicture}[baseline=(sub2.south)]
            \begin{groupplot}[
                    group style={
                        group size=1 by 2,
                        horizontal sep=0pt,
                        vertical sep=0pt,
                        x descriptions at=edge bottom,
                    },
                    width=0.33\textwidth,
                    height=0.33\textwidth/2,
                    xlabel=X,
                    ylabel=Y,,scale only axis
                ]
                \nextgroupplot[title=This is a title]
                \addplot {x^(1/3)};
                \nextgroupplot[name=sub2]
                \addplot {x^(1/3)};
            \end{groupplot}
        \end{tikzpicture}%
    \end{tabular}
\end{figure}
\end{document} 

相关内容