我的数据文件是;
#"U"
17.90 17.92 0.03
17.91 17.93 0.03
#"M"
11.22 16.71 0.02
11.44 16.64 0.02
#"T"
33.22 16.36 0.01
22.3 16.34 0.01
我想画1:2,第三是y轴上的误差。我希望这些是有错误的linespoint,所以我使用代码:
plot 'doc.dat' u 1:2:3 w yerrorbars ls 1 i 0 t "U", '' u 1:2:3 w yerrorbars ls 2 i 1 t "M", '' u 1:2:3 w yerrorbars ls 3 i 2 t "T"
但是有错误。我不明白我做错了哪一部分。
最佳答案
如gnuplothelp index
中所述:数据集由成对的空白记录分隔。
因此,要使用索引,需要将数据文件更改为:(注意双空格)
#"U"
17.90 17.92 0.03
17.91 17.93 0.03
#"M"
11.22 16.71 0.02
11.44 16.64 0.02
#"T"
33.22 16.36 0.01
22.3 16.34 0.01
那么关于你的情节线,正如@matthew所建议的,你需要改为:
plot 'doc.dat' i 0 u 1:2:3 w yerrorbars ls 1 t "U", '' i 1 u 1:2:3 w yerrorbars ls 2 t "M", '' i 2 u 1:2:3 w yerrorbars ls 3 t "T"
注:
删除注释对脚本有很大帮助:
"U"
17.90 17.92 0.03
17.91 17.93 0.03
"M"
11.22 16.71 0.02
11.44 16.64 0.02
"T"
33.22 16.36 0.01
22.3 16.34 0.01
可以将脚本简化为:
set key autotitle columnhead
plot for [a=0:2] "doc.dat" i a w yerr
或者更好的方法是自动计算块的数量:
set key autotitle columnhead
stats "doc.dat"
plot for [a=0:STATS_blocks] "doc.dat" i a w yerr
最后,如果需要误差线和点之间的直线,
plot
线变为:plot for [a=0:STATS_blocks] "doc.dat" i a w l, for [a=0:STATS_blocks] "" i a w yerr pt 0
查看gnuplot中的
help stats
和help for
。