PGF 图例上的自定义间距

PGF 图例上的自定义间距

我正在尝试更改 PGF 条形图中单个图例条目的间距。这是我的 MWE:

\documentclass{article}
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\begin{document}
  \begin{tikzpicture}
    \begin{axis}[ybar]
        \addplot coordinates {(1,3) (2,5) (3,2)};
        \addlegendentry{(a)}
        \addplot coordinates {(1,2) (2,6) (3,1)};
        \addlegendentry{(b)}
        \addplot coordinates {(1,4) (2,4) (3,4)};
        \addlegendentry{(c)}
    \end{axis}
  \end{tikzpicture}
\end{document}

生成下图

该问题的最小工作示例

我想要的是在图例中的 (a) 和 (b) 之间创建一个空格,而不在 (b) 和 (c) 之间创建一个空格(也就是说,我不想更改)row sep。想法是将 (a) 与 (b) 和 (c) 分开,以便在演示中突出 (a) 是一项作品的结果,而 (b) 和 (c) 是另一项作品的结果。

\label我尝试使用和创建自定义图例\ref,但是这会将图例中的条形图更改为线条。

答案1

text depth=2ex, anchor=mid您可以通过以下选项来调整图例条目的间距\addlegendentry

\documentclass{article}
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\begin{document}
  \begin{tikzpicture}
    \begin{axis}[ybar]
        \addplot coordinates {(1,3) (2,5) (3,2)};
        \addlegendentry[text depth=2ex, anchor=mid]{(a)}
        \addplot coordinates {(1,2) (2,6) (3,1)};
        \addlegendentry{(b)}
        \addplot coordinates {(1,4) (2,4) (3,4)};
        \addlegendentry{(c)}
    \end{axis}
  \end{tikzpicture}
\end{document}

答案2

这不是最好的解决方案,但你可以添加一个空的图例条目

\addlegendimage{empty legend}
\addlegendentry{}

可以通过在图例条目中添加零宽度规则来增加间距,例如

\addlegendentry{\rule{0pt}{3pt}}

更改3pt以修改间距。

在此处输入图片描述

\documentclass{article}
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\begin{document}
  \begin{tikzpicture}
    \begin{axis}[ybar]
        \addplot coordinates {(1,3) (2,5) (3,2)};
        \addlegendentry{(a)}
        \addlegendimage{empty legend}
        \addlegendentry{}
        \addplot coordinates {(1,2) (2,6) (3,1)};
        \addlegendentry{(b)}
        \addplot coordinates {(1,4) (2,4) (3,4)};
        \addlegendentry{(c)}
    \end{axis}
  \end{tikzpicture}
\end{document}

相关内容