Wrong tick labels alignment on baseline

You can fix the text height by setting xticklabel style={text height=2ex}:

\documentclass{article}

\usepackage{pgfplots}
\usepackage{tikz}

\usepackage{siunitx}

\begin{document}
\begin{tikzpicture}
  \begin{axis}[
    xtick={1e-4, .1, .3},
    xticklabels={\num{e-4}, 0.2, 0.3},
    xticklabel style={text height=2ex}
    ]
    \addplot[only marks] table[x=x, y=y] {
      x y
      -.3 .7
      .2 .1
      .5 .6
      0.4 -0.5
    };
  \end{axis}
\end{tikzpicture}
\end{document}

There is a better answer — just add style typeset ticklabels with strut.


The easiest and fastest way that comes to my mind is to add a phantom exponent:

enter image description here

\documentclass{article}

\usepackage{pgfplots}
\usepackage{tikz}

\usepackage{siunitx}
\newcommand{\pe}[1]{$#1^{\vphantom{1}}$}

\begin{document}
\begin{tikzpicture}
  \begin{axis}[
    xtick={1e-4, .1, .3},
    xticklabels={\num{e-4}, \pe{0.2}, \pe{0.3}},
    ]
    \addplot[only marks] table[x=x, y=y] {
      x y
      -.3 .7
      .2 .1
      .5 .6
      0.4 -0.5
    };
  \end{axis}
\end{tikzpicture}
\end{document}