PGFPLOTS 転置凡例 (凡例エントリは空)

PGFPLOTS 転置凡例 (凡例エントリは空)

次の MWE の、空の (スキップされた) エントリを含む 3x3 形状の転置凡例マトリックスに凡例エントリを正しく配置する際に問題が発生しています。

\documentclass{standalone}

\usepackage{pgfplots}
\pgfplotsset{compat=1.16}

\begin{document}

  \begin{tikzpicture}
    \begin{axis}[%
      legend columns = 3,
      transpose legend,
    ]

    \addplot {-x+1};\addlegendentry{A}
    \addplot {-x+2};\addlegendentry{B}
    \addplot {-x+3};\addlegendentry{C}
    \addplot {-x+4};\addlegendentry{D}
    \addplot {-x+5};\addlegendentry{E}
    \addlegendimage{empty legend}\addlegendentry{skip me}
    \addplot {-x+7};\addlegendentry{F}
    %\addlegendimage{empty legend}\addlegendentry{skip me}
    %\addlegendimage{empty legend}\addlegendentry{skip me}

    \end{axis}
  \end{tikzpicture}
\end{document}

私が得たものは次のとおりです:

失敗例

しかし、私が期待しているのは次のことです。

A   D   F
B   E
C

最後の 2 行のコメントを解除すると、期待どおりの結果が得られることが分かりましたempty legend

\documentclass{standalone}

\usepackage{pgfplots}
\pgfplotsset{compat=1.16}

\begin{document}

  \begin{tikzpicture}
    \begin{axis}[%
      legend columns = 3,
      transpose legend,
    ]

    \addplot {-x+1};\addlegendentry{A}
    \addplot {-x+2};\addlegendentry{B}
    \addplot {-x+3};\addlegendentry{C}
    \addplot {-x+4};\addlegendentry{D}
    \addplot {-x+5};\addlegendentry{E}
    \addlegendimage{empty legend}\addlegendentry{skip me}
    \addplot {-x+7};\addlegendentry{F}
    \addlegendimage{empty legend}\addlegendentry{skip me} % <-- Uncommented
    \addlegendimage{empty legend}\addlegendentry{skip me} % <-- Uncommented

    \end{axis}
  \end{tikzpicture}
\end{document}

これにより、期待どおりの結果が得られました。

実例

最初の問題の解決策は見つかりましたが、これが想定される動作なのか疑問に思っています。関連するものは見つかりませんでした。PGFPLOTS ドキュメント

答え1

要件を満たしている場合は、左側のチェックマークを付けてください。

ここに画像の説明を入力してください

\documentclass{standalone}

\usepackage{pgfplots}
\pgfplotsset{compat=1.16}

\begin{document}

  \begin{tikzpicture}
    \begin{axis}[%
      legend columns = 3,
      transpose legend,
    ]

    \addplot {-x+1};\addlegendentry{A}
    \addplot {-x+2};\addlegendentry{B}
    \addplot {-x+3};\addlegendentry{C}
    \addplot {-x+4};\addlegendentry{D}
    \addplot {-x+5};\addlegendentry{E}
    \addlegendimage{empty legend}\addlegendentry{}
    \addplot {-x+7};\addlegendentry{F}
    \addlegendimage{empty legend}\addlegendentry{} % <-- Uncommented
    \addlegendimage{empty legend}\addlegendentry{} % <-- Uncommented

    \end{axis}
  \end{tikzpicture}
\end{document}

凡例のアンカーも次のように指定する必要があることに注意してください。

legend style={at={(0.03,0.5)},anchor=west}

アンカーは、定義した座標に凡例ボックスのどの点が配置されるかを定義しますat={(<>,<>)}

at={(<>,<>)}挿入する座標のみを使用する場合は、ポイント(0,0)が左下の角度と(1,1)右上の角度である軸ボックスの座標になります。

代わりに を使用する場合は、at={(axis cs:<>,<>)}プロットと同じ軸の実際の座標を指定します。

legend style={at={(axis cs:0.5,1)},anchor=south west}

または

\begin{axis}[legend pos=north west]

または

\begin{axis}[legend style={at={(0.5,-0.1)},anchor=north}]

または

\begin{axis}
[%
    axis lines = middle,
    xlabel = $x$,
    ylabel = {$f(x)$},
    enlarge y limits=upper,
    yticklabel style = {font=\tiny},
    xticklabel style = {font=\tiny},
    legend style={xshift=1.5cm},
    thick,
]%

デフォルトの位置は ですnorth east

関連情報