我有两个在 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}