Gnuplot似乎无法进行线性拟合

Gnuplot似乎无法进行线性拟合,gnuplot,Gnuplot,我对gnuplot有一个问题。在我的数据中,在特定范围内有一个非常明显的线性关系。所以我想在这个范围内做一个线性拟合。但是gnuplot抛出了一些类似正交(应该是to)的东西。 我创建了以下管件文件: set fit errorvariables f(x)=a*x+b fit f(x) 'Data1f.txt' using 1:2:3:4 xyerrors via a,b g(x)=c*x+d fit g(x) 'Data2f.txt' using 1:2:3:4 xyerrors via c,

我对gnuplot有一个问题。在我的数据中,在特定范围内有一个非常明显的线性关系。所以我想在这个范围内做一个线性拟合。但是gnuplot抛出了一些类似正交(应该是to)的东西。 我创建了以下管件文件:

set fit errorvariables
f(x)=a*x+b
fit f(x) 'Data1f.txt' using 1:2:3:4 xyerrors via a,b
g(x)=c*x+d
fit g(x) 'Data2f.txt' using 1:2:3:4 xyerrors via c,d
set xlabel 'U_G  [V]'
set ylabel '{/Symbol=\326}(U_{Ph}-U_0)  [{/Symbol=\326}U]'
set xrange [0:0.9]
set yrange [0:4.5]
set grid
plot 'Data1.txt' using 1:2:3:4 w xyerrorbars title 'Measurement 1', f(x) title 'f(x)', 'Data2.txt' using 1:2:3:4 w xyerrorbars title 'Masurement 2', g(x) title 'g(x)' 
结果如下图所示:

我不知道为什么它不能拟合数据的明显线性部分(“Data1f”和“Data2f”包含完全相同的值,如“Data1”和“Data2”,只是遗漏了一些数据点。(我尝试过,当范围comands“fit[number:number]f(x)…”显示相同的结果时。)。
甚至LibreOffice Calc也能给我一条拟合曲线,得到预期的曲线(但LibreOffice Calc无法处理错误-只有数据点本身).

因为您在拟合后指定了范围,gnuplot将线性函数拟合到完整的数据集,您说这是非线性的。因此结果显然是不好的。如果更改命令的顺序,
fit
将只使用范围内的数据,您应该得到合理的拟合:

set xrange [0:0.9]
set yrange [0:4.5]
fit f(x) 'Data1f.txt' using 1:2:3:4 xyerrors via a,b
fit g(x) 'Data2f.txt' using 1:2:3:4 xyerrors via c,d

你可以在a、b、c和d附近使用你期望的某个值进行初始化。然后尝试一下,它会起作用。最初,该值可能是某个随机垃圾数,我可以通过使用一些期望的附近值初始化常量来解决同样的问题

只需使用
拟合f(x)“Data1f.txt”使用1:2通过a,b
。问题是,我必须将其与错误相匹配。你能提供数据以便我们检查吗?值a,b,c,d是否初始化为一些合理的值?是的,我会上传数据。但我在很大压力下完成这项工作。目前正在绘制数据。尽管如此,我还是会我想知道下一次我必须依靠gnuplot,那里发生了什么。所以我可能需要一些时间来上传数据文件。是的,但正如我所写的,我尝试了一些范围命令。包括在fit命令之前设置一次x范围,在fit命令之后设置两次。不幸的是,这并没有改变结果。正如我所说的d、 在“Data..f.txt”中只有相关的线性数据点!在“Data..txt”中是完整的数据集。所以我没有绘制,我拟合的是什么,因为range命令不起作用。我的意思是,当然我以某种方式绘制了我拟合的,但我绘制了完整的数据集,而我只拟合了线性数据点(因此,不同的.txt名称如果没有您的实际数据,将无法进一步帮助您…