pgfplots: Restaurando grades/tiques secundários após remover a grade principal

pgfplots: Restaurando grades/tiques secundários após remover a grade principal

Seguindominha pergunta anterior, descobri que a grade secundária foi removida entre 0e 0.5. Então, tentei adicionar grid = minordentroextra tick style

\documentclass[border=5pt]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}

\begin{document}
\begin{tikzpicture}
    \begin{axis}[
    xtick={0.5,1,...,4.5},
    xmin=0,xmax=5,
    minor x tick num = {1},
    minor x tick style = {line width = 2pt},
    major x tick style = {line width = 2pt},
    xmajorgrids, xminorgrids,
    major x grid style = {dashed,red},
    minor x grid style = {dotted,black},
    extra x ticks={0,5},
    extra tick style={
        grid=minor,
    },]
        \addplot[mark=none,blue] {x^2};
    \end{axis}
\end{tikzpicture}
\end{document}

mas isso resulta nisso

insira a descrição da imagem aqui

O que eu preciso é

  1. remova as marcas principais em 0e 5e
  2. coloque pequenas marcas em0.25

Pergunta digressiva

Por que há uma marca menor colocada em 4.75e não em 0.25?

Responder1

Então você tem que fazer as coisas "ao contrário". Portanto, aplique o estilo dos ticks normais aos ticks extras e vice-versa.

Os comentários do código sobre como funciona. (Não é necessário código que excluí.)

% used PGFPlots v1.14
\documentclass[border=5pt]{standalone}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
    \begin{axis}[
        xmin=0,xmax=5,
        % don't state the `xtick's here, but use just the default and state
        % the `xtick distance'
        xtick distance=0.5,
        minor x tick num={1},
        minor x tick style={line width=2pt},
        xminorgrids,
        minor x grid style={dotted,black},
        % but draw the `extra x ticks' with the values of the former `xtick' ...
        extra x ticks={0.5,1,...,4.5},
        % ... but don't draw any labels (because they are there already and
        % there is no need to draw them twice)
        extra x tick labels={},
        % finally apply the needed style for the extra ticks
        extra tick style={
            tick style={line width=2pt},
            major grid style={dashed,red},
            grid=major,
        },
    ]
        \addplot [mark=none,blue] {x^2};
    \end{axis}
\end{tikzpicture}
\end{document}

imagem mostrando o resultado do código acima

informação relacionada