Tengo problemas para colocar correctamente las entradas de la leyenda en una matriz de leyenda transpuesta con forma de 3x3 con entradas vacías (omitidas) para el siguiente 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}
Lo que obtengo es:
Pero lo que espero es:
A D F
B E
C
Descubrí que obtengo el resultado esperado al descomentar las dos últimas empty legend
líneas:
\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}
Con esto obtengo el resultado esperado:
Aunque encontré la solución para mi problema inicial, me pregunto si este es el comportamiento esperado. No pude encontrar nada relacionado en elDocumentación PGFPLOTS.
Respuesta1
Si esto cumple con sus requisitos, marque la marca de verificación a la izquierda
\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}
Tenga en cuenta que también debe especificar un ancla de su leyenda de esta manera:
legend style={at={(0.03,0.5)},anchor=west}
el ancla define qué punto del cuadro de leyenda se colocará en las coordenadas que usted defina con at={(<>,<>)}
.
Si usa solo at={(<>,<>)}
las coordenadas que inserta son las del cuadro del eje donde el punto (0,0)
es el ángulo inferior izquierdo y (1,1)
el ángulo superior derecho.
Si usas en su lugar at={(axis cs:<>,<>)}
especificas las coordenadas reales del eje, las mismas de tu trazado.
EJEMPLOS
legend style={at={(axis cs:0.5,1)},anchor=south west}
o
\begin{axis}[legend pos=north west]
o
\begin{axis}[legend style={at={(0.5,-0.1)},anchor=north}]
o
\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,
]%
La posición predeterminada es north east
.