我有一个 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 east
。legend 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}