combinando coordenadas absolutas y relativas para la etiqueta del eje

combinando coordenadas absolutas y relativas para la etiqueta del eje

Considere el siguiente MWE

\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{
    compat=1.12,
    stdaxis/.style={
        ylabel style={at={(ticklabel cs:1.06)},anchor=west,rotate=270},
        }
    }
\begin{document}
\begin{tikzpicture}
    \begin{axis}[stdaxis,ylabel=$f(x)$,xlabel=$x$]
    \addplot {x^2};
    \end{axis}
\end{tikzpicture}
\end{document}

producción producida

Esto es exactamente lo que quiero. Mi problema es que cuando uso el mismo stdaxisestilo para otra imagen con una altura diferente, la etiqueta del eje y "f(x)" sube o baja demasiado. Para evitar esto, me gustaría usar un posicionamiento absoluto y cambiar el estilo a algo comoylabel style={at={(ticklabel cs:1.0+5mm)},anchor=west,rotate=270}

¿Cómo es esto posible?

Respuesta1

Puedes lograr esto con cálculos de coordenadas usando la biblioteca TikZ calc(cf.sección 13.5 del manual de PGF/TikZ):

\documentclass{article}
\usepackage{pgfplots}
\usetikzlibrary{calc}
\pgfplotsset{
    compat=1.12,
    stdaxis/.style={
        ylabel style={at={($(ticklabel cs:1.0)+(0mm,5mm)$)},anchor=west,rotate=270},
        }
    }
\begin{document}
\begin{tikzpicture}
    \begin{axis}[stdaxis,ylabel=$f(x)$,xlabel=$x$]
    \addplot {x^2};
    \end{axis}
\end{tikzpicture}
\end{document}

gráfico de ejemplo, con la etiqueta y 5 mm por encima de la esquina superior izquierda del cuadro del eje

Respuesta2

Usaryshift=5mm después rotate=270:

ingrese la descripción de la imagen aquí

Código:

\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{
    compat=1.12,
    stdaxis/.style={
            ylabel style={at={(ticklabel cs:1)},
            anchor=west,
            rotate=270,
            yshift=5mm% <-
            },
        }
    }
\begin{document}
\begin{tikzpicture}
    \begin{axis}[stdaxis,ylabel=$f(x)$,xlabel=$x$]
    \addplot {x^2};
    \end{axis}
\end{tikzpicture}

\bigskip
\begin{tikzpicture}
    \begin{axis}[stdaxis,height=10cm,ylabel=$f(x)$,xlabel=$x$]
    \addplot {x^2};
    \end{axis}
\end{tikzpicture}
\end{document}

información relacionada