pgfplots:更改图例中的水平间距

pgfplots:更改图例中的水平间距

我正在用 pgfplots 绘制一个简单的散点图,其中还包括一个图例,如下图上部所示。

在此处输入图片描述

但是,我发现水平间距很奇怪,因为符号和相应描述之间的距离与下一个描述相同。我希望它在图片的下半部分像“伪造的”一样。

以下代码给出了一个简单的示例。以下是描述A B C D

\documentclass{scrartcl}
\usepackage{pgfplots}
\begin{document}

\begin{tikzpicture}
    \begin{axis}[legend columns=-1, legend pos=outer north east]
        \addplot+ coordinates {(0,0) (0,1)};
        \addplot+ coordinates {(1,0) (0,0)};
        \addplot+ coordinates {(0,0) (1,1)};
        \addplot+ coordinates {(1,1) (0,0)};
        \legend{a,b,c,d};
    \end{axis}
\end{tikzpicture}

\end{document}

如果我理解手册没有错的话,图例是由一个矩阵组成的。但是,我不知道如何相应地更改间距。非常感谢您的帮助 ;)

答案1

最简单的方法是指定text width图例中的标签。请参阅下面的第二个示例。

示例输出

\documentclass{scrartcl}
\usepackage{pgfplots}
\begin{document}

\begin{tikzpicture}
  \begin{axis}[legend columns=-1, legend pos=outer north east]
        \addplot+ coordinates {(0,0) (0,1)};
        \addplot+ coordinates {(1,0) (0,0)};
        \addplot+ coordinates {(0,0) (1,1)};
        \addplot+ coordinates {(1,1) (0,0)};
        \legend{a,b,c,d};
    \end{axis}
\end{tikzpicture}

\begin{tikzpicture}
  \begin{axis}[legend columns=-1, legend pos=outer north east,
    legend style={text width=2em,text height=1.5ex,text depth=.5ex}]
        \addplot+ coordinates {(0,0) (0,1)};
        \addplot+ coordinates {(1,0) (0,0)};
        \addplot+ coordinates {(0,0) (1,1)};
        \addplot+ coordinates {(1,1) (0,0)};
        \legend{a,b,c,d};
    \end{axis}
\end{tikzpicture}

\end{document}

我添加了text height以使所有字母位于一条均匀的基线上。为了统一,我还指定了text depth,尽管pgfplots已经设置了一个。

相关内容