data.txt中
test1 10 1
test2 10 2
test3 12 3
.plt文件
set terminal postscript eps solid color enhanced "Helvetica" 20
set output "io1.eps"
set size 1,1
set multiplot layout 1,2
set style histogram errorbars gap 1 lw 1 title textcolor lt -1
set style data histograms
set lmargin at screen 0.1; set rmargin at screen 0.45
set xrange [-0.5:1.5]
set yrange [0:15]
plot './data.txt' every :::0::0 using 2:3 title "aaa" fc rgb "#00ff00" fs pattern 9
set lmargin at screen 0.55; set rmargin at screen 0.9
set xrange [-0.5:1.5]
set yrange [0:15]
plot './data.txt' every :::1::1 using 2:3 title "bbb" fc rgb "#f0f000" fs pattern 3
unset multiplot
结果
问题
第二个子图中的平均值列和错误栏之间有差距,如何解决?
答案 0 :(得分:2)
我没有完全解释为什么会这样。似乎gnuplot隐式使用当前数据集中的记录索引。当两个空行开始新数据集时,将重置此索引。
也许您可以通过在数据行之间使用2个空行而不是仅使用一行来更改数据文件。然后,您可以使用index
代替every
来访问数据,如下所示:
替换两个绘图命令
plot './data.txt' every :::0::0 using 2:3 title "aaa" fc rgb "#00ff00" fs pattern 9
plot './data.txt' every :::1::1 using 2:3 title "bbb" fc rgb "#f0f000" fs pattern 3
通过
plot './data.txt' index 0 using 2:3 title "aaa" fc rgb "#00ff00" fs pattern 9
plot './data.txt' index 1 using 2:3 title "bbb" fc rgb "#f0f000" fs pattern 3
现在可行: