It seems like pgfplots draws the grid after the axis lines. Therefore light grey grid lines appear on top of the axis lines. This is what I mean:
See the light lines separating the axis lines. I guess there is some sort of "draw this after that" solution, similar to: this topic, however I was not able to achieve the desired behaviour (axis line on top).
This should be specific to all 3D plots. Is there a concise way to adress only 3D plots?
axis lines=box, % left, right, center, box, none
outer axis line style={line width=5pt,},
axis line on top/.style={axis on top=true,}, % doesnt work as expected
A minimal working example is
\documentclass{standalone}
\usepackage{tikz,pgfplots}
\pgfplotsset{
outer axis line style={line width=5pt,},
grid = major,
tickwidth = 0,
width=8cm,
height=4cm,
}
\begin{document}
\begin{tikzpicture}
\begin{axis}[%
xmin=-5, xmax=5,
ymin=0, ymax=5,
zmin=-5, zmax=0,
view={20}{20},
]
\addplot3 {-sqrt(x^2 + y^2)};
\end{axis}
\end{tikzpicture}
\end{document}

pgfplotsstill applies the heuristics which draws items in top of each other without activatingset layers. Thus, it fixes the given order only when it encountersset layers. Maybe it will become the system default in some future version. – Christian Feuersänger Dec 04 '15 at 16:10set layers. It exists up to and including version 1.12 (the latest stable at the time of this writing). In order to work around this limitation, you can use\pgfplotsset{set layers,cell picture=true}. I have finally managed to fixed that defect (thanks to god, was hard to catch). The fix will become part of 1.13. – Christian Feuersänger Dec 04 '15 at 16:15