将图例(pgfplots)放在图下方

将图例(pgfplots)放在图下方

我有一个 pgfplot,其中图例正好位于图的右侧。我按如下方式创建图:

\begin{axis}[
    scale only axis,
    xmode=log,
    ymode=log,
    width=7cm,
    legend cell align=left,
    legend pos=outer north east,
    legend style={draw=none}
  ]

现在我想将图例移到图下方。所以我想我只需用 替换legend pos=outer north eastlegend pos=outer south west但是 LaTex 不喜欢这个想法:Choice 'outer south west' unknown in key '/pgfplots/le gend pos'。这有什么问题?

答案1

从手册的第 4.8.5 节开始,您可以使用 every axis legend

\pgfplotsset{every axis legend/.append style={
at={(0,0)},
anchor=north east}} 

代码:(部分来自手册)

\documentclass{standalone}
\usepackage{pgfplots}
 \pgfplotsset{width=7cm,compat=1.7}
 \pgfplotsset{every axis legend/.append style={
    at={(0,0)},
    anchor=north east}}
\begin{document}
\begin{tikzpicture}
\begin{axis}
\addplot coordinates {(0,0) (1,1)};
\addplot coordinates {(0,1) (1,2)};
\addplot coordinates {(0,2) (1,3)};
\legend{$l_1$,$l_2$,$l_3$}
\end{axis}
\end{tikzpicture}
\end{document}

除了/.append style,还可以使用 ,legend style如下例所示。其效果相同。

\documentclass{standalone}
\usepackage{pgfplots}
 \pgfplotsset{width=7cm,compat=1.7}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
legend style={
at={(0,0)},
anchor=north east}]
\addplot coordinates {(0,0) (1,1)};
\addplot coordinates {(0,1) (1,2)};
\addplot coordinates {(0,2) (1,3)};
\legend{$l_1$,$l_2$,$l_3$}
\end{axis}
\end{tikzpicture}
\end{document}

在此处输入图片描述

at={(axis description cs:0,-0.1)}正如评论中提到的那样,您可以通过以下方式微调位置:

\documentclass{standalone}
\usepackage{pgfplots}
 \pgfplotsset{width=7cm,compat=1.7}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
legend style={
at={(0,0)},
anchor=north east,at={(axis description cs:0,-0.1)}}]
\addplot coordinates {(0,0) (1,1)};
\addplot coordinates {(0,1) (1,2)};
\addplot coordinates {(0,2) (1,3)};
\legend{$l_1$,$l_2$,$l_3$}
\end{axis}
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容