i具有一组数据点x,y,它们在某个范围内是线性的,并且在另一个一定范围内逐渐偏离线性。
所以我想制作" R"(线性回归因子)与" x"的图。在那个图中,我可以确定r何时远离1,我可以确定线性拟合的最佳范围。我想做一个像以下插图一样的情节:
以下论文的图2 https://arxiv.org/abs/1409.0614
所以我的想法到目前为止是这样的:
reset
file1 = "file1.dat"
do for [ nxz=0:50] {
fitrangein=150+nxz
fitrangefin=300
stats [fitrangein:fitrangefin] file1 u 1:2
print STATS_correlation
}
问题是:如何在表中存储stats_corryation的值?因此,我稍后可以使用:
plot "r_values_vs_x_variable.dat" u 1:2
col 1必须包含x值和col 2 col 2在" do for"的每个周期中生成的stats_corlyation的值。
我怀疑我需要某种选择CAT命令的选项,因此STATS_CORRYATION的第一个值可以粘贴在第1行,第2行中的第二个值等。但是我不知道如何准确地做。
您有任何建议还是不同的想法?非常感谢。
您可以使用set print
重定向print
命令的输出,请参见help set print
。像
set print "r_values_vs_x_variable.dat"
do for ... {
....
print fitrangein, STATS_correlation
}
set print
应该工作。
由于版本5.0,gnuplot也可以打印到命名的datablock,可以像文件一样使用,但不会存储到磁盘:
set print $data
do for [i=1:10] {print i, i**2}
set print
plot $data us 1:2
具有不用临时文件将硬盘驱动器混乱的优势。
一种不同的方法是简单地绘制差异商:
plot lx=NaN, ly=NaN, dataf us (llx=lx,lx=$1,lly=ly,ly=$2, (lx+llx)/2):((lly-ly)/(llx-lx))
"使用"指示符大量使用串行评估运算符","将最后一个数据值通过LX和LLX,RSP转移。ly和lly。