\pgfplotsset{
  every axis/.append style = {thick},
  tick style = {thick,black},
  %
  % #1 = x, y, or z
  % #2 = the shift value
  /tikz/normal shift/.code 2 args = {%
    \pgftransformshift{%
        \pgfpointscale{#2}{\pgfplotspointouternormalvectorofticklabelaxis{#1}}%
    }%
  },%
  %
  shift/.style = {
    tick align        = outside,
    scaled ticks      = false,
    enlargelimits     = false,
    ticklabel shift   = {#1},
    axis lines*       = left,
    xtick style       = {normal shift={x}{#1}},
    ytick style       = {normal shift={y}{#1}},
    x axis line style = {normal shift={x}{#1}},
    y axis line style = {normal shift={y}{#1}},
  },
  shift/.default = 10pt,
  shift3d/.style = {
    shift=#1,
    ztick style       = {normal shift={z}{#1}},
    z axis line style = {normal shift={z}{#1}},
  },
  shift3d/.default = 10pt,
}

