PGFPlots: Achsenlinien mit äußeren Teilstrichbeschriftungen zentrieren

PGFPlots: Achsenlinien mit äußeren Teilstrichbeschriftungen zentrieren

Was ich erreichen möchte:

Grundsätzlich möchte ich diesem Bild so nahe wie möglich kommen: Bild eines leeren Diagramms mit zentrierten Achsenlinien, aber Beschriftungen außen

Beachten Sie, dass die Achsenlinien zentriert sind, die Teilstrichbeschriftungen jedoch außen liegen (ähnlich dem Achsenstil mit Box).

Was ich bisher habe:

\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}

Bild eines leeren Diagramms mit zentrierten Achsenlinien mit Beschriftungen direkt auf den Achsen

Wie Sie sehen, wurden die Häkchen selbst tatsächlich nach links und unten verschoben, wie durch xticklabel pos=bottomund angegeben yticklabel pos=left.

Beachten Sie, dass gemäß derPGFPlots Handbuch Revision 1.16, Abschnitt 4.15.2 (Ausrichtung der Häkchen: Positionen und Verschiebungen):

Die Änderung tick poswirkt sich auch auf die Platzierung der Teilstrichbeschriftungen aus.

Dies scheint hier jedoch nicht der Fall zu sein.

Antwort1

Hier zeige ich eine mögliche Lösung, um Ihr Ziel zu erreichen.

Der zitierte Text in Ihrer Frage ist vielleicht etwas irreführend, aber dort steht auch, dass dies nur betrifftBoxplots.

Werfen Sie dennoch einen Blick auf die Kommentare im Code, um weitere Informationen zu erhalten.

% 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}

Bild, das das Ergebnis des obigen Codes zeigt

verwandte Informationen