当 tikzpicture 中有多个图时修剪轴

当 tikzpicture 中有多个图时修剪轴

我使用 tikzpicture 和 axis 环境来生成图表。在一个文档中,我希望图表轴与文本垂直对齐。这样刻度和标签就在页边距中。如果 tikzpicture 中只有一个 axis 环境,我使用 trim axis 选项并将轴宽度设置为 \textwidth 并获得所需的输出

在此处输入图片描述

但是当我在 tikzpicture 中有两个轴环境时,就会出现问题。在这种情况下,修剪轴选项会修剪左侧图形,并将第二个图形放置在线的开头。这就是我尝试这样做的方式以及结果的样子。

\documentclass{article}

\usepackage{blindtext}
\usepackage{pgfplots}
\pgfplotsset{compat=1.12}

\begin{document}

\begin{figure}

\begin{tikzpicture}[trim axis left, trim axis right]
\begin{axis}[
                xmin=0, xmax=1, xtick={0.2,0.5,0.8}, xlabel=x, ymin=0, ymax=1, ytick={0,0.5,1},ylabel=A, height=0.49\textwidth,
        width=0.49\textwidth,
        scale only axis,
        name=first]
\end{axis}

\begin{axis}[
        xmin=0, xmax=1, xtick={0.2,0.5,0.8}, xlabel=x, ymin=0, ymax=1, ytick={0,0.5,1},ylabel=B, height=0.49\textwidth,
        at=(first.south east),
        anchor=south west,
        xshift=0.02\textwidth,
        yticklabel pos=right,
        ylabel near ticks,
        width=0.49\textwidth,
        scale only axis]
\end{axis}

\end{tikzpicture}
\caption{\blindtext}
\end{figure}

\end{document}

在此处输入图片描述

如何仅修剪刻度和标签?而不是整个图表。

答案1

您已经命名了左侧图。为右侧图也设置一个名称并使用

\begin{tikzpicture}[trim left=(first.south west),trim right=(second.south east)]

在此处输入图片描述

代码:

\documentclass{article}
\usepackage{blindtext}
\usepackage{pgfplots}
\pgfplotsset{compat=1.12}

\begin{document}

\begin{figure}

\begin{tikzpicture}[trim left=(first.south west),trim right=(second.south east)]
\begin{axis}[
                xmin=0, xmax=1, xtick={0.2,0.5,0.8}, xlabel=x, ymin=0, ymax=1, ytick={0,0.5,1},ylabel=A, height=0.49\textwidth,
        width=0.49\textwidth,
        scale only axis,
        name=first]
\end{axis}

\begin{axis}[
        xmin=0, xmax=1, xtick={0.2,0.5,0.8}, xlabel=x, ymin=0, ymax=1, ytick={0,0.5,1},ylabel=B, height=0.49\textwidth,
        at=(first.south east),
        anchor=south west,
        xshift=0.02\textwidth,
        yticklabel pos=right,
        ylabel near ticks,
        width=0.49\textwidth,
        scale only axis,
        name=second
        ]
\end{axis}

\end{tikzpicture}
\caption{\blindtext}
\end{figure}
\end{document}

相关内容