Skalierungsfaktor des xtick von pgfplot mit Maske

Skalierungsfaktor des xtick von pgfplot mit Maske

Ein Skalierungsfaktor factorfür xticks funktioniert nicht mit der ldots-Maske .... Gibt es für das Problem eine Lösung?

\documentclass[tikz]{standalone}
\usepackage{pgfplots}


%===============================================================================
\begin{document}
\noindent
\begin{tikzpicture}[
    declare function ={
        factor=2;
    }
    ]
    \begin{axis}[
        %xtick = {-2*factor,2*factor}, % This one work
        %xtick = {-2,...,2}, % This one work
        xtick = {-2*factor,...,2*factor}, % This one doesn't work
        ]
        \addplot+[blue, no marks, domain={-6:6}] {x^2};
    \end{axis}
\end{tikzpicture}


\end{document}

Antwort1

Sie müssen einstellen /pgf/foreach/parse=true, siehe S. 989 von pgfmanual v3.1.4

Bildbeschreibung hier eingeben

Das funktioniert (zumindest in diesem Fall).

\documentclass[tikz]{standalone}
\usepackage{pgfplots}

%===============================================================================
\begin{document}
\noindent
\begin{tikzpicture}[/pgf/foreach/parse=true,%<-added
    declare function ={
        factor=2;
    }
    ]
    \begin{axis}[
        %xtick = {-2*factor,2*factor}, % This one work
        %xtick = {-2,...,2}, % This one work
        xtick={-2*factor,...,2*factor}, % This one works now
        ]
        \addplot+[blue, no marks, domain={-6:6}] {x^2};
    \end{axis}
\end{tikzpicture}
\end{document}

Bildbeschreibung hier eingeben

Ich möchte erwähnen, dass ich empfehle, es nicht zu übertreiben parse=true, da es Fälle mit ganzen Zahlen gibt, bei denen ich einige Schwierigkeiten hatte.

Nur für den Fall, dass Sie mit diesem Vorschlag Probleme haben, weil eine andere, möglicherweise interne Schleife Probleme verursacht: Sie können auch xtickminund verwenden xtickmax, deren Werte automatisch analysiert werden.

\documentclass[tikz]{standalone}
\usepackage{pgfplots}

%===============================================================================
\begin{document}
\noindent
\begin{tikzpicture}[
    declare function ={
        factor=2;
    }
    ]
    \begin{axis}[
        xtickmin=-2*factor,
        xtickmax=2*factor,
        ]
        \addplot+[blue, no marks, domain={-6:6}] {x^2};
    \end{axis}
\end{tikzpicture}
\end{document}

verwandte Informationen