我想用 Gnuplot 绘制均值和置信区间。我的数据有几个具有相同 x 值的样本
21 27 4 12 20 100 50000 false 0.1 "DFSA" 2 205068 31.986
24 27 4 12 20 100 50000 false 0.1 "DFSA" 2 207798 32.49448
22 27 4 12 20 100 50000 false 0.1 "DFSA" 2 207499 32.60746
23 27 4 12 20 100 50000 false 0.1 "DFSA" 2 214065 33.17844
25 27 4 12 20 100 50000 false 0.1 "DFSA" 2 198386 31.4488
26 27 4 12 20 100 50000 false 0.1 "DFSA" 2 208307 32.77412
28 27 4 12 20 100 50000 false 0.1 "DFSA" 2 208669 32.77474
27 27 4 12 20 100 50000 false 0.1 "DFSA" 2 214324 33.16506
30 27 4 12 20 100 50000 false 0.1 "DFSA" 2 209924 32.77186
29 27 4 12 20 100 50000 false 0.1 "DFSA" 2 212959 33.3218
32 27 4 12 20 100 50000 false 0.2 "DFSA" 2 486241 64.3479
31 27 4 12 20 100 50000 false 0.2 "DFSA" 2 487487 64.65076
33 27 4 12 20 100 50000 false 0.2 "DFSA" 2 494703 65.06718
34 27 4 12 20 100 50000 false 0.2 "DFSA" 2 488164 64.77828
36 27 4 12 20 100 50000 false 0.2 "DFSA" 2 476513 63.3158
35 27 4 12 20 100 50000 false 0.2 "DFSA" 2 491005 65.02426
38 27 4 12 20 100 50000 false 0.2 "DFSA" 2 487454 64.44962
37 27 4 12 20 100 50000 false 0.2 "DFSA" 2 490494 65.06572
39 27 4 12 20 100 50000 false 0.2 "DFSA" 2 472081 63.31234
40 27 4 12 20 100 50000 false 0.2 "DFSA" 2 498294 65.02114
它有十个样本,第 9 列 = 0.1,值 0.2 相同。我想用置信区间绘制第 13 列(最后一列)的平均值并使用 Gnuplot yerrorlines
,它需要四列中的数据x
mean
min
max
。最小值和最大值的公式使用第 13 列的 STATS_mean、STATS_ssd 和 STATS_records,第 9 列的值相等。
我试图x
mean
min
max
用这个将值写入文件
system("touch lbt.dat")
stats "data.txt" u ($9==0.1?$13:1/0) name "lbt01"
system("(0.1 lbt01_mean (lbt01_mean - 2.262*lbt01_ssd/sqrt(lbt_records)) (lbt01_mean + 2.262*lbt01_ssd/sqrt(lbt_records))) >> lbt.dat")
但我在最后一个system
命令中收到错误以将值保存在 lbt.dat 文件中。我也试过
system("printf '%f\t\%f\t\%f\t\%f' 0.1 lbt01_mean (lbt01_mean - 2.262*lbt01_ssd/sqrt(lbt_records)) (lbt01_mean + 2.262*lbt01_ssd/sqrt(lbt_records))) >> lbt.dat ")
(2.262 是 95% 置信区间和 9 个自由度的 t-student pdf 的值)。
看起来stasts
,例如的结果lbt01_mean
无法使用system
.
此外,由于数据文件以 0.1 为步长(第 9 列)包含 0.1 到 1.7 的样本,我想问是否有办法缩短 Gnuplot 脚本。
问候
从 gnuplot 打印到文件的一种简单方法是使用
print
命令,在使用set print
. 尝试为了遍历 0.1 到 1.7 的所有值,您可以使用从 1 到 17 的 for 循环,然后除以 10。