Gnuplot:如何将前一个残差的总和绘制到下一个残差,直到我的(n)个残差的(n-1)个总和(所需的绘图值)?
Gnuplot: How to plot the sum of the previous residual to the next residual till (n-1) summs (desired plot values) of my (n) residuals?
我有这个残差 .conv 文件(类似于 .txt 文件):
0 -3.39778780952e+00 -3.64444458026e+00 -6.13098312717e+00 -3.33731379258e+00 9.60958415473e-02
1 -5.68002563742e+00 -5.05666214505e+00 -6.80071922409e+00 -5.04462782788e+00 2.22031207076e-03
2 -5.64107082704e+00 -4.97249772797e+00 -6.79863961158e+00 -4.96268354902e+00 2.61811084403e-03
3 -5.80553774139e+00 -5.92252773129e+00 -8.00308750495e+00 -5.70572702588e+00 4.58014609089e-04
4 -5.78806459727e+00 -6.01639219099e+00 -8.59850185227e+00 -5.72299102224e+00 3.93884617760e-04
5 -6.81638698130e+00 -6.73802955972e+00 -8.62025323625e+00 -6.62315587350e+00 8.89255543212e-05
6 -6.51291720873e+00 -6.69293919422e+00 -8.66002661220e+00 -6.43426100314e+00 1.09754466079e-04
7 -7.57778891780e+00 -7.00314649895e+00 -8.63923998027e+00 -6.98816143858e+00 5.94338661679e-05
8 -7.56036077709e+00 -7.01274467096e+00 -8.62954759664e+00 -6.99585319125e+00 5.69443692058e-05
我想在 GNUPLOT 中绘制,第一列有一个新列(如果不需要创建一个新列,则没有),它将第 6 列残差的前一个值与第 6 列残差的下一个残差相加6th 列等等,直到我有 6th 列值的 (n-1) 总和(所需的绘图值)以获得最终结果每次迭代的变形。
例如,当我对第 6 列值求和时:9.60e10-2 + 2.22e10-3 --> 我想要的列数据的第一个值
9.60e10-2 + 2.22e10-3 + 2.22e10-3 --> 我想要的列数据的第二个值
等等
我想我需要一个函数来为 GNUPLOT 绘制它。
谢谢
如果我理解的很好,你想做一个累积图,像这样:
生成者:
plot[1:][0.095:] 'temp.dat' u 1:6 smooth cumulative w p ps 2 lw 2 notitle
但关键是smooth cumulative
。
使用以下代码绘制一列的总和。我想这接近我从你的问题中理解的内容。但是,第一个值将是第 1 行,第 2 个值将是第 1+2 行,第 3 个值将是第 1+2+3d 行,等等。希望您可以根据需要进行修改。
代码:
### sum up a column
reset session
$Data <<EOD
0 -3.39778780952e+00 -3.64444458026e+00 -6.13098312717e+00 -3.33731379258e+00 9.60958415473e-02
1 -5.68002563742e+00 -5.05666214505e+00 -6.80071922409e+00 -5.04462782788e+00 2.22031207076e-03
2 -5.64107082704e+00 -4.97249772797e+00 -6.79863961158e+00 -4.96268354902e+00 2.61811084403e-03
3 -5.80553774139e+00 -5.92252773129e+00 -8.00308750495e+00 -5.70572702588e+00 4.58014609089e-04
4 -5.78806459727e+00 -6.01639219099e+00 -8.59850185227e+00 -5.72299102224e+00 3.93884617760e-04
5 -6.81638698130e+00 -6.73802955972e+00 -8.62025323625e+00 -6.62315587350e+00 8.89255543212e-05
6 -6.51291720873e+00 -6.69293919422e+00 -8.66002661220e+00 -6.43426100314e+00 1.09754466079e-04
7 -7.57778891780e+00 -7.00314649895e+00 -8.63923998027e+00 -6.98816143858e+00 5.94338661679e-05
8 -7.56036077709e+00 -7.01274467096e+00 -8.62954759664e+00 -6.99585319125e+00 5.69443692058e-05
EOD
plot s=0 $Data u 1:(s=s+) w lp pt 7 title "Sum up"
### end of code
结果:
我有这个残差 .conv 文件(类似于 .txt 文件):
0 -3.39778780952e+00 -3.64444458026e+00 -6.13098312717e+00 -3.33731379258e+00 9.60958415473e-02
1 -5.68002563742e+00 -5.05666214505e+00 -6.80071922409e+00 -5.04462782788e+00 2.22031207076e-03
2 -5.64107082704e+00 -4.97249772797e+00 -6.79863961158e+00 -4.96268354902e+00 2.61811084403e-03
3 -5.80553774139e+00 -5.92252773129e+00 -8.00308750495e+00 -5.70572702588e+00 4.58014609089e-04
4 -5.78806459727e+00 -6.01639219099e+00 -8.59850185227e+00 -5.72299102224e+00 3.93884617760e-04
5 -6.81638698130e+00 -6.73802955972e+00 -8.62025323625e+00 -6.62315587350e+00 8.89255543212e-05
6 -6.51291720873e+00 -6.69293919422e+00 -8.66002661220e+00 -6.43426100314e+00 1.09754466079e-04
7 -7.57778891780e+00 -7.00314649895e+00 -8.63923998027e+00 -6.98816143858e+00 5.94338661679e-05
8 -7.56036077709e+00 -7.01274467096e+00 -8.62954759664e+00 -6.99585319125e+00 5.69443692058e-05
我想在 GNUPLOT 中绘制,第一列有一个新列(如果不需要创建一个新列,则没有),它将第 6 列残差的前一个值与第 6 列残差的下一个残差相加6th 列等等,直到我有 6th 列值的 (n-1) 总和(所需的绘图值)以获得最终结果每次迭代的变形。
例如,当我对第 6 列值求和时:9.60e10-2 + 2.22e10-3 --> 我想要的列数据的第一个值 9.60e10-2 + 2.22e10-3 + 2.22e10-3 --> 我想要的列数据的第二个值 等等
我想我需要一个函数来为 GNUPLOT 绘制它。
谢谢
如果我理解的很好,你想做一个累积图,像这样:
生成者:
plot[1:][0.095:] 'temp.dat' u 1:6 smooth cumulative w p ps 2 lw 2 notitle
但关键是smooth cumulative
。
使用以下代码绘制一列的总和。我想这接近我从你的问题中理解的内容。但是,第一个值将是第 1 行,第 2 个值将是第 1+2 行,第 3 个值将是第 1+2+3d 行,等等。希望您可以根据需要进行修改。
代码:
### sum up a column
reset session
$Data <<EOD
0 -3.39778780952e+00 -3.64444458026e+00 -6.13098312717e+00 -3.33731379258e+00 9.60958415473e-02
1 -5.68002563742e+00 -5.05666214505e+00 -6.80071922409e+00 -5.04462782788e+00 2.22031207076e-03
2 -5.64107082704e+00 -4.97249772797e+00 -6.79863961158e+00 -4.96268354902e+00 2.61811084403e-03
3 -5.80553774139e+00 -5.92252773129e+00 -8.00308750495e+00 -5.70572702588e+00 4.58014609089e-04
4 -5.78806459727e+00 -6.01639219099e+00 -8.59850185227e+00 -5.72299102224e+00 3.93884617760e-04
5 -6.81638698130e+00 -6.73802955972e+00 -8.62025323625e+00 -6.62315587350e+00 8.89255543212e-05
6 -6.51291720873e+00 -6.69293919422e+00 -8.66002661220e+00 -6.43426100314e+00 1.09754466079e-04
7 -7.57778891780e+00 -7.00314649895e+00 -8.63923998027e+00 -6.98816143858e+00 5.94338661679e-05
8 -7.56036077709e+00 -7.01274467096e+00 -8.62954759664e+00 -6.99585319125e+00 5.69443692058e-05
EOD
plot s=0 $Data u 1:(s=s+) w lp pt 7 title "Sum up"
### end of code
结果: