gnuplot - 如何每 N 个数据点拟合一个函数
gnuplot - How to fit a function every N data points
我正在使用 gnuplot 和函数拟合工具对我的一些数据执行最小二乘法拟合。
我有很多数据点(有时数千万),因此不可能拟合所有数据点。 (或者至少太慢而不实用。)
可以使用关键字 every
绘制数据点(编辑:应该是 pointinterval
而不是 every
!)后跟整数 N,仅每隔一个绘制第N点.
例如plot 'data.csv' using 1:2 pointinterval 1000
绘制每千分之一的数据点。在绘制 10 的数百万点时很有用 - 否则你看不到任何有用的东西。
是否有类似的拟合方法,即只拟合每第 1000 个点?
我尝试了 fit 'data.csv' f(x) using 1:2 pointinterval 1000 via a,b
,其中 a
和 b
是我的 f(x)
的参数 - 但我只是得到一个错误:';' expected
.
我也尝试用谷歌搜索并阅读 gnuplot 绘图的文档,但没有找到任何东西。
或者,我可以将我的程序代码更改为仅将每第 1000 个点写入数据文件,但这样我将不得不拥有 2 个数据文件 - 一个包含所有点,另一个包含每 1000 个数据点中的 1 个。 .这看起来有点浪费。
编辑:我不确定为什么我认为 every
是正确的语法。原来它应该是 pointinterval
(pi
短)后跟一个整数。
然而,这只适用于绘图,不适用于函数拟合,所以问题仍然悬而未决。
未来注意事项:使用 every
语法
我正在使用 gnuplot 和函数拟合工具对我的一些数据执行最小二乘法拟合。
我有很多数据点(有时数千万),因此不可能拟合所有数据点。 (或者至少太慢而不实用。)
可以使用关键字 every
绘制数据点(编辑:应该是 pointinterval
而不是 every
!)后跟整数 N,仅每隔一个绘制第N点.
例如plot 'data.csv' using 1:2 pointinterval 1000
绘制每千分之一的数据点。在绘制 10 的数百万点时很有用 - 否则你看不到任何有用的东西。
是否有类似的拟合方法,即只拟合每第 1000 个点?
我尝试了 fit 'data.csv' f(x) using 1:2 pointinterval 1000 via a,b
,其中 a
和 b
是我的 f(x)
的参数 - 但我只是得到一个错误:';' expected
.
我也尝试用谷歌搜索并阅读 gnuplot 绘图的文档,但没有找到任何东西。
或者,我可以将我的程序代码更改为仅将每第 1000 个点写入数据文件,但这样我将不得不拥有 2 个数据文件 - 一个包含所有点,另一个包含每 1000 个数据点中的 1 个。 .这看起来有点浪费。
编辑:我不确定为什么我认为 every
是正确的语法。原来它应该是 pointinterval
(pi
短)后跟一个整数。
然而,这只适用于绘图,不适用于函数拟合,所以问题仍然悬而未决。
未来注意事项:使用 every
语法