使用 pgfplots 绘制的图表不正确(三角函数,如 cos、sin 和 tan)

使用 pgfplots 绘制的图表不正确(三角函数,如 cos、sin 和 tan)

我正在尝试使用 LaTeX 的 pgfplots 绘制一个函数。不幸的是,pgfplots 绘制函数不正确。这是我使用的 LaTeX 代码:

\begin{figure}[H]
\centering
\begin{tikzpicture}
    \begin{axis}[xlabel=Gameplays,ylabel=Rating]
        \addplot+[gray,domain=1:30]
        {0.5 + 0.5 * ((atan(x) * 2 / pi)^11.79)};
    \end{axis}
\end{tikzpicture}
\caption{Omzetten van aantal gameplays tot impliciete rating}
\label{fig:omzetten_impliciete_ratings}
\end{figure}

该函数的样子如下:

其绘制方式如下:

有人知道我做错了什么吗?

提前致谢!

答案1

TikZ 使用度数而不是弧度(是的,是的,我知道……)。因此,您需要用 替换pi180或者,正如 Jake 在评论中所建议的那样,用 替换atan(x)rad(atan(x))rad函数将度数转换为弧度)。

\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}

得出的结果为:

带度的 PGF 图

这看起来更像你想要的(图表上的数字对我来说有点小,所以我将它与使用你的函数从 gnuplot 获得的输出进行了比较,与此相比看起来是正确的)。

答案2

这是旧的,但我在遇到同样的问题时发现了它。现在有一个新的解决方案,称为trig format plots=rad

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

参见手册部分4.3.3 用数学表达式计算坐标


仅供搜索引擎使用:pgfplots、三角函数、弧度、度数、错误结果、错误图

答案3

仅供参考。这不是答案,但我尝试使用 tkz-fct 来实现您的功能(tkz-fct 可与 tikz 和 gnuplot 配合使用)。

pgfplots 比 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

}

在此处输入图片描述

相关内容