PGFPlots: líneas de eje central con etiquetas de marca exteriores

PGFPlots: líneas de eje central con etiquetas de marca exteriores

Lo que estoy tratando de lograr:

Básicamente quiero acercarme lo más posible a esta imagen: Imagen de un diagrama vacío con líneas de eje centradas pero etiquetas en el exterior

Tenga en cuenta que las líneas del eje están centradas pero que las etiquetas de marca están en el exterior (similar al estilo del eje en cuadro).

Lo que tengo hasta ahora:

\documentclass{minimal}

\usepackage{pgfplots}
\usepackage{graphicx}   % For \resizebox
\pgfplotsset{compat=newest}

\begin{document}
    \centering
    \resizebox{0.8\textwidth}{!}{%
        \begin{tikzpicture}
            \begin{axis}[
                axis lines=center,
                grid=major,
                xlabel=\(x\), xmin=-5.25, xmax=5.25,
                xtick distance=1, xtick pos=bottom,
                ymin=-5.25, ymax=5.25,
                ytick distance=1, ytick pos=left,
            ]

            \end{axis}
        \end{tikzpicture}
     } % \resizebox
\end{document}

Imagen de un diagrama vacío con líneas de eje centradas con etiquetas directamente en los ejes

Como puede ver, las marcas en sí se movieron hacia la izquierda y hacia abajo según lo especificado por xticklabel pos=bottomy yticklabel pos=left.

Nótese que, según elManual de PGFPlots Revisión 1.16, sección 4.15.2 (Alineación de ticks: posiciones y cambios):

Los cambios tick postambién afectarán la ubicación de las etiquetas de marca.

Sin embargo, este no parece ser el caso aquí.

Respuesta1

Aquí te muestro una posible solución para lograr lo que deseas.

El texto citado en su pregunta puede ser un poco engañoso, pero también está escrito que esto sólo afectaparcelas en caja.

Sin embargo, eche un vistazo a los comentarios del código para obtener más información.

% used PGFPlots v1.16
\documentclass[border=5pt]{standalone}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
    \begin{axis}[
        axis lines=center,
        xmin=-5.25,
        xmax=5.25,
        ymin=-5.25,
        ymax=5.25,
        xlabel=$x$,
        % move the `xlabel` to the right of the arrow
        xlabel style={
            anchor=west,
        },
        xtick distance=1,
        xtick pos=bottom,
        ytick distance=1,
        ytick pos=left,
        grid=major,
        % -----------------------------
        % move ticklabels to the "outside"
        xticklabel style={
%            % hard-coded solution --> dependent of axis scaling/size
%            yshift=-82pt,
            % relative shifting --> independent of axis scaling/size
            shift={(0,0 |- {axis description cs:0,-1})}
        },
        yticklabel style={
%            % hard-coded solution --> dependent of axis scaling/size
%            xshift=-100pt,
            % relative shifting --> independent of axis scaling/size
            shift={(0,0 -| {axis description cs:-0.53,0})}
        },
        % remove the ticks themselves
        % (which are moved as well)
        tickwidth=0pt,
        % show the "0"s (zeros) again
        hide obscured x ticks=false,
        hide obscured y ticks=false,
        % -----------------------------
%        % for testing only to see, if the shifting works independent of
%        % axis scaling
%        height=10cm,
    ]

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

imagen que muestra el resultado del código anterior

información relacionada