Ich würde die Berechnung einfach `pgfplots` überlassen und dafür die Tick-Nummer `\ticknum` verwenden:
\documentclass[border=5mm, varwidth]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\usetikzlibrary{math}
\begin{document}
% Reichweite der Ticks festlegen
\def\Range{0,...,6}
% ticklist erstellen
\newcommand{\xticklist}{}% Name reservieren
\let\xticklist=\empty% Liste erstellen
\makeatletter
\foreach \n in \Range
{
\pgfmathparse{\n*pi}%
\ifx\empty\xticklist{} \protected@xdef\xticklist{\pgfmathresult}%
\else \protected@xdef\xticklist{\xticklist,\pgfmathresult}%
\fi
}
\makeatother
\begin{tikzpicture}[]
\begin{axis}[
axis lines=middle,
xlabel=$x$,xlabel style={anchor=north},
ylabel=$y$,ylabel style={anchor=east},
x axis line style = {-latex}, y axis line style = {-latex},
%
xtick/.expanded = {\xticklist}, % tut
%
xticklabel = {
\pgfmathparse{\ticknum*pi}
$\underbrace{\pgfmathprintnumber{\pgfmathresult}}_{\approx \ticknum\pi}$
}, % tut
%
]
\addplot[domain=0:20, samples=300] {sin(deg(x))};
\end{axis}
\end{tikzpicture}
\end{document}
[![alt text][1]][1]
Prinzipiell kann man aber auch `\tick`, also den Wert des Ticks verwenden:
xticklabel = {
$\underbrace{\pgfmathprintnumber{\tick}}_{\approx \ticknum\pi}$
}, % tut
oder oder daraus sogar wieder den Faktor berechnen:
xticklabel = {
\pgfmathparse{\tick/pi}
$\underbrace{\pgfmathprintnumber{\tick}}_{\approx \pgfmathprintnumber{\pgfmathresult}\pi}$
}, % tut
Siehe auch: http://texwelt.de/wissen/fragen/21551/wie-erstelle-ich-listen-zur-achsenbeschriftung-fur-pgfplots-tikz/21554
[1]: http://texwelt.de/wissen/upfiles/test_20180214_150239.png