我正在尝试使用 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 使用度数而不是弧度(是的,是的,我知道……)。因此,您需要用 替换pi
(180
或者,正如 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}
得出的结果为:
这看起来更像你想要的(图表上的数字对我来说有点小,所以我将它与使用你的函数从 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
}