pgfplots--修剪组图的轴

pgfplots--修剪组图的轴

使用groupplotspgfplots 库,创建对齐图相当简单。现在,我想将左轴移到文档的边缘。通常,如果我有一个没有 的单个图,则可以使用和groupplots的组合来完成。trim axis leftscale only axis

考虑以下示例。我想创建四个图,以 2x2 的方式对齐。

\documentclass{article}

\usepackage{pgfplots}
\usepackage{lipsum}

\usepgfplotslibrary{groupplots}

\begin{document}
\lipsum[2]

\begin{tikzpicture}[trim axis left]
    \begin{groupplot}[
        group style={group size=2 by 2},
        width=0.499\textwidth,
        scale only axis,
        ]

        \nextgroupplot
        \addplot {x};

        \nextgroupplot
        \addplot {x*x};

        \nextgroupplot
        \addplot {1};

        \nextgroupplot
        \addplot {-x};

    \end{groupplot}
\end{tikzpicture}

\lipsum[2]
\end{document}

但是,应用trim axis leftscale only axis,现在不仅会修剪左侧图的左轴,还会修剪所有左侧图。这可能是因为每个子图都会修剪其左侧的所有内容,如果是右侧图,则包括左侧图。

我尝试通过的可选参数在本地应用这些选项\nextgroupplot,但没有成功。有一个类似的问题关于对齐,但我更希望采用包含 的解决方案groupplots。有办法吗?

答案1

使用trim axis group left,它是为 量身定制的groupplots。在您的示例中,您可能还需要\noindent,但您的实际文档中是否需要它取决于 是否tikzpicturefigure环境中。

如果您希望右轴边框也与文本的右侧对齐,您可以设置horizontal sep,然后设置width0.5\textwidth减去一半horizontal sep

在此处输入图片描述

\documentclass{article}

\usepackage{pgfplots}
\usepackage{lipsum}

\usepgfplotslibrary{groupplots}

\begin{document}
\lipsum[2]

\noindent\begin{tikzpicture}[trim axis group left]
    \begin{groupplot}[
        group style={
          group size=2 by 2,
          horizontal sep=30pt
         },
        width=0.5\textwidth-15pt, % subtract half the horizontal sep
        scale only axis,
        ]

        \nextgroupplot
        \addplot {x};

        \nextgroupplot
        \addplot {x*x};

        \nextgroupplot
        \addplot {1};

        \nextgroupplot
        \addplot {-x};

    \end{groupplot}
\end{tikzpicture}

\lipsum[2]
\end{document}

相关内容