平滑的 pgfplot 中斜率突然变化的奇怪行为

平滑的 pgfplot 中斜率突然变化的奇怪行为

我试图绘制一些斜率突然变化的点。但我得到了一些奇怪的行为,如下所示:

在此处输入图片描述

正如您在峰值中看到的那样,那里并不平滑。

不过,我认为问题在于插值算法,因为 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]

但主要问题是,您拥有的点组彼此太近,并且突然跳转到更高值的组,这会限制转弯的自由度并使插值变得不合理。如果可能的话,我建议忽略太近的点。

相关内容