我的数据文件为;
#"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,第3是y轴上的错误。我希望这些作为有错误的线点,所以我使用代码:
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"
但是收到错误。我不明白我做错了哪一部分。
答案 0 :(得分:0)
如gnuplot help 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