我试图绘制一些斜率突然变化的点。但我得到了一些奇怪的行为,如下所示:
正如您在峰值中看到的那样,那里并不平滑。
不过,我认为问题在于插值算法,因为 tikz 使用贝塞尔曲线。所以我想知道有没有办法解决这个问题?
我在这里只提供了数据样本。但是,我有几个图存在这些不连续性,我想找到一种自动修复它们的方法。如果您需要,我可以显示更多出现不连续性的点。
\documentclass{standalone}
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotstableread{
0.0000 0.0000
0.1561 0.8615
0.1614 0.8643
0.1669 0.8670
0.3619 0.8670
0.3679 0.8781
0.3739 0.8809
0.3799 0.8809
0.3858 0.8837
0.3918 0.8975
1.0000 1.0000
}\datatable
\begin{document}
\makeatletter
\begin{tikzpicture}
\begin{axis}[
ylabel=label,
no markers,
smooth
]
\addplot table [x index=0, y index=1] \datatable;
\end{axis}
\end{tikzpicture}
\end{document}
答案1
您可以添加并使用tension=0.08
轴的选项(数字越小,刻度越清晰[0,1]
。
但主要问题是,您拥有的点组彼此太近,并且突然跳转到更高值的组,这会限制转弯的自由度并使插值变得不合理。如果可能的话,我建议忽略太近的点。