将图例放在两个相邻的 TikZ 图表下方

将图例放在两个相邻的 TikZ 图表下方

我有两个在 tikz 中彼此相邻的图表,它们通过表格分隔。

图表各显示三条线,并且两张图表中的线属于同一类型。因此,我想要一个联合图例,而不是每个图例一个图例。

如何在两个图形下方添加居中、水平的图例?

我在堆栈上看到了几个答案: 如何在图表下方放置图例? 但是,这会将图例放在图表下方,而我有两个图表,它应该放在它们下方的中央,并且是水平的。

基本上,我想要的是一个以下形式的盒子:

------------------------------------------------------------------------------------
| <line1> Legend description <line2> Legend description <line3> Legend description |
------------------------------------------------------------------------------------

<line>线条的样式在哪里。此框应位于两个图表的正下方。

这是代码,删除了实际的情节和一些其他的东西以保持匿名:

begin{figure}[!hbt]
\centering
\begin{tabular}{ll}
\resizebox{175pt}{!}{%
\begin{tikzpicture}
  \begin{axis}[
    xlabel=x,
    ylabel=y,
    grid=both,
    grid style={line width=.1pt, draw=gray!10},
    major grid style={line width=.2pt,draw=gray!50},
    axis lines=middle,
    minor tick num=5,]
    \addplot coordinates {};
    \addplot coordinates {};
    \addplot coordinates {};
  \end{axis}
\end{tikzpicture}
}
&
\resizebox{200pt}{!}{%
\begin{tikzpicture}
  \begin{axis}[
    xlabel=x,
    ylabel=y,
    grid=both,
    grid style={line width=.1pt, draw=gray!10},
    major grid style={line width=.2pt,draw=gray!50},
    axis lines=middle,
    minor tick num=5,]
    \addplot coordinates {};
    \addplot coordinates {};
    \addplot coordinates {};
  \end{axis}
\end{tikzpicture}
}
\end{tabular}

\caption{}
\label{}
\end{figure}

答案1

您可以使用legend to name密钥来获取所需内容。它记录在 pgfplots 手册第 265 页第 4.9.7 节中。

以下示例取自手册:

\begin{center}% note that \centering uses less vspace...
    \begin{tikzpicture}
        \begin{axis}[
            legend columns=-1,
            legend entries={$(x+0)^k$;,$(x+1)^k$;,$(x+2)^k$;,$(x+3)^k$},
            legend to name=named,
            title={$k=1$},
        ]
            \addplot {x};
            \addplot {x+1};
            \addplot {x+2};
            \addplot {x+3};
        \end{axis}
    \end{tikzpicture}

    \begin{tikzpicture}
        \begin{axis}[
            title={$k=2$}
        ]
            \addplot {x^2};
            \addplot {(x+1)^2};
            \addplot {(x+2)^2};
            \addplot {(x+3)^2};
        \end{axis}
    \end{tikzpicture}

    \begin{tikzpicture}
        \begin{axis}[
            title={$k=3$}
        ]
            \addplot {x^3};
            \addplot {(x+1)^3};
            \addplot {(x+2)^3};
            \addplot {(x+3)^3};
        \end{axis}
    \end{tikzpicture}
    \\

    \ref{named}
\end{center}

相关内容