如何平滑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
相关产品推荐
相关产品推荐

