Estou tendo problemas para colocar corretamente as entradas da legenda em uma matriz de legenda transposta em formato 3x3 com entradas vazias (ignoradas) para o seguinte MWE:
\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}
O que eu recebo é:
Mas o que espero é:
A D F
B E
C
Descobri que obtenho o resultado esperado descomentando as duas últimas empty legend
linhas:
\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}
Com isso, obtenho o resultado esperado:
Embora eu tenha encontrado a solução para o meu problema inicial, gostaria de saber se esse é o comportamento esperado! Não encontrei nada relacionado noDocumentação PGFPLOTS.
Responder1
Se isso atender às suas necessidades, marque a marca de seleção à esquerda
\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}
Lembre-se de que você também deve especificar uma âncora para sua legenda desta forma:
legend style={at={(0.03,0.5)},anchor=west}
a âncora define qual ponto da caixa de legenda será colocado nas coordenadas que você definir com at={(<>,<>)}
.
Se você usar apenas at={(<>,<>)}
as coordenadas inseridas serão as da caixa do eixo onde o ponto (0,0)
é o ângulo inferior esquerdo e (1,1)
o ângulo superior direito.
Se você usar em vez disso, at={(axis cs:<>,<>)}
especifique as coordenadas reais do eixo, as mesmas do seu gráfico.
EXEMPLOS
legend style={at={(axis cs:0.5,1)},anchor=south west}
ou
\begin{axis}[legend pos=north west]
ou
\begin{axis}[legend style={at={(0.5,-0.1)},anchor=north}]
ou
\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,
]%
A posição padrão é north east
.