Incorrect plot using pgfplots (trigonometric functions like cos, sin and tan)

TikZ uses degrees instead of radians (yes, yes, I know ...). So you need to replace pi by 180 (or, as Jake suggests in the comments, replace atan(x) by rad(atan(x)); the rad function converts degrees to radians).

\documentclass{minimal}

\usepackage{pgfplots}

\begin{document}

\begin{tikzpicture}
    \begin{axis}[xlabel=Gameplays,ylabel=Rating]
        \addplot+[gray,domain=1:30]
        {0.5 + 0.5 * ((atan(x) * 2 / 180)^11.79)};
    \end{axis}
\end{tikzpicture}
\end{document}

This produces:

PGFPlots with degrees

which looks a lot more like what you want (the numbers on your graph are a little small for me so I compared with the output I get from gnuplot using your function and it looks right when compared with that).


This is old but I found it when I had the same problem. Now there is a new solution called trig format plots=rad.

\begin{axis}[trig format plots=rad]
...

See the manual section 4.3.3 Computing Coordinates with Mathematical Expressions.


Just for search engines: pgfplots, trigonometric functions, radian, degree, wrong result, wrong plot


Only for information. This is not an answer but I try your function with tkz-fct (tkz-fct works with tikz and gnuplot).

pgfplots is more complete and sophisticated package than tkz-fct.

\documentclass[11pt]{article}
\usepackage{amsmath}
\usepackage{tkz-fct}

\begin{document}

\begin{center}
\begin{tikzpicture}
        \tkzInit[xmin=0,xmax=30,,xstep=5,
                 ymin=0.4,ymax=1,ystep=0.1]
        \tkzAxeXY 
        \tkzGrid
        \tkzFct[domain=1:30]{0.5 + 0.5 * ((atan(\x) * 2 / pi)**11.79) }
\end{tikzpicture}
\end{center}

\end{document

}

enter image description here

Tags:

Pgfplots