You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何平滑PGFplots绘制的cos(sin(x))曲线?(LaTeX)

解决方法:移除不必要的度数转换

你的图像不光滑的核心问题是错误地对x做了度数转换。pgfplots中,domain定义的x取值默认是弧度单位,而cos、sin这类三角函数默认也接受弧度输入。你用deg(x)把弧度转成度数后,函数实际变成了cos(sin(180x/π)),这会让函数的振荡频率异常高,哪怕采样1000个点也无法呈现光滑曲线。

只需要移除deg()包裹,直接使用弧度计算即可,同时可以适当降低采样数(200个点就足够光滑):

\begin{tikzpicture}
    \begin{axis}[
        axis y line=middle, 
        axis x line=middle, 
        grid=both,
        enlarge y limits=true,
        xlabel={\(x\)},
        ylabel={\(\cos{(\sin{(x)})}\)},
        xtick={
           -2*pi, -(3*pi)/2, -pi, -pi/2,
           pi/2, pi, (3*pi)/2, 2*pi
        },
        xticklabels={
           $-2\pi$, $-\frac{3\pi}{2}$, $-\pi$, $-\frac{\pi}{2}$,
           $\frac{\pi}{2}$, $\pi$, $\frac{3\pi}{2}$, $2\pi$
        },
        domain=-2*pi:2*pi 
    ]
    \addplot [ 
        samples=200, 
        color=red,
        smooth % 可选,进一步优化曲线光滑度
       ]
       {cos(sin(x))}; % 移除deg(x)
    \end{axis}
\end{tikzpicture}

关键修改说明:

  • 移除deg(x):让三角函数直接使用pgfplots默认的弧度单位计算,还原cos(sin(x))的真实曲线
  • 降低采样数到200:足够呈现光滑曲线,避免不必要的性能消耗
  • 可选添加smooth:pgfplots会自动对采样点进行插值优化,进一步提升视觉光滑度

内容的提问来源于stack exchange,提问作者SpaceWarriorR

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 19:37:10