我有一个具有以下格式的数据文件: col1:剧情[0-9] + col2:x col3:是 col4:三角洲
例如:
plot0, 1, 1, 2
plot1, 1, 2, 2
plot0, 2, 2, 1
plot1, 2, 3, 2
我正在尝试为图例和颜色分开的第一列的每个plotX绘制yerrorbars。
一个不可扩展的示例是:
plot 'ex.dat' using 1:2:3 with yerrorbars, 'ex1.dat' using 1:2:3 with yerrorbars
答案 0 :(得分:1)
也许是这样? datapoint + yerrorbar的颜色通过功能GetPlotNo(n) = int(strcol(n)[5:])
从第一列中获取。
第二个plot命令实际上是在范围之外绘制一个虚拟对象,只是为了获得正确的图例颜色。如果您需要连接每个plot1,plot2,...的数据点,则可能会更加复杂。
代码:
### color of datapoints depending on a column
reset session
set colorsequence classic
$Data <<EOD
plot0, 1.0, 1, 2
plot1, 1.1, 2, 2
plot0, 2.0, 2, 1
plot1, 2.1, 3, 2
plot2, 1.2, 3, 2
plot0, 3.0, 3, 1
plot1, 3.1, 4, 1
plot2, 2.2, 5, 1
plot2, 3.2, 4, 1
EOD
set datafile separator ","
set xrange[0:4]
set yrange[-1:7]
GetPlotNo(n) = int(strcol(n)[5:])
plot \
$Data u 2:3:4:(GetPlotNo(1)+1) w yerrorbars pt 7 lc var lw 2 notitle, \
for [i=0:2] -999 w lp pt 7 lc i+1 lw 2 title sprintf("plot%i",i) noautoscale
### end of code
结果: