![TikZ/pgf 和 pgfplots 如何进行数据平滑?](https://linux22.com/image/349900/TikZ%2Fpgf%20%E5%92%8C%20pgfplots%20%E5%A6%82%E4%BD%95%E8%BF%9B%E8%A1%8C%E6%95%B0%E6%8D%AE%E5%B9%B3%E6%BB%91%EF%BC%9F.png)
我通过将smooth
选项应用到相应的图表曲线来绘制平滑的数据曲线,如下所示:
\addplot[color=black, mark=none, smooth] table[x=time, y=measured, col sep=semicolon] {./data.csv};
我只在内部使用这些图。但是,由于这些图将来应该用于科学出版物,因此我需要一些有关平滑多项式的信息,以便稍微支持绘图。
我查看了 pgfplots 手册和 pgf/TikZ 手册,它们似乎没有提供有关所使用的平滑多项式或算法的任何进一步的信息。
那么有人知道在绘图之前使用哪种方法/算法来平滑数据吗?
答案1
平滑不是全局进行的,因此没有使用实际的平滑多项式。不是用线段连接连续点,而是使用贝塞尔曲线连接解析输入流中的连续点,这些点的内外角大致相等,这些外角由贝塞尔曲线的控制点定义。因此,如果点之间有急剧的变化,您应该会遇到过冲/欠冲。手册中的smooth
key 下也提到了这一点。
pgflibraryplothandlers.code.tex
您可以在文件第 24 行看到实际的代码。\pgfplothandlercurveto
宏定义是实际的算法。
在科学出版物中,您不应该出于美观原因使用平滑键更改数据,或者使用提供的实际代码进行平滑处理。