gnuplot:yerrorbars和linecolor变量

gnuplot:yerrorbars和linecolor变量,gnuplot,Gnuplot,我想用不同的颜色绘制yerrorbars。我可以使用以下代码绘制不同颜色的点: reset plot "-" using 1:2:3 with points linecolor variable # x y linecolor -4.0 -3.8 1 -3.0 -2.9 1 -2.0 -2.1 2 -1.0 -1.2 1 1.0 1.1 1 2.0 2.2 2 3.0 3.3 3 4.0 4.5 3 end 但我不知

我想用不同的颜色绘制
yerrorbars
。我可以使用以下代码绘制不同颜色的点:

reset
plot "-" using 1:2:3 with points linecolor variable
# x    y   linecolor
-4.0  -3.8   1
-3.0  -2.9   1
-2.0  -2.1   2 
-1.0  -1.2   1
 1.0   1.1   1
 2.0   2.2   2
 3.0   3.3   3 
 4.0   4.5   3
end
但我不知道如何将此扩展到
yerrorbars
。当我尝试使用下面的代码时,错误条只使用默认颜色。如何使用特定颜色为错误栏上色

reset
plot "-" using 1:2:($1-$2) with yerrorbars linecolor variable
# x    y   linecolor
-4.0  -3.8   1
-3.0  -2.9   1
-2.0  -2.1   2 
-1.0  -1.2   1
 1.0   1.1   1
 2.0   2.2   2
 3.0   3.3   3 
 4.0   4.5   3
end
我找到了一种方法,分离数据,然后绘制它。但如果有一种不分离数据的方法,那将是一个更好的解决方案

reset
plot "-" using 1:2:($1-$2) with yerrorbars lc 1, \
     "-" using 1:2:($1-$2) with yerrorbars lc 2, \
     "-" using 1:2:($1-$2) with yerrorbars lc 3

# x     y
-4.0  -3.8
-3.0  -2.9
-1.0  -1.2
 1.0   1.1
end

-2.0  -2.1
 2.0   2.2
end

 3.0   3.3
 4.0   4.5
end

问题是,第三列(
$1-$2
)用于绘制耶罗巴(更具体地说是ydelta)。文件:

3 columns:  x  y  ydelta
您需要为linecolor添加另一列。如果你想编一些花哨的东西,你可以做如下事情:

plot "/tmp/test.foo" using 1:2:($1-$2):(int($1)+1) with yerrorbars linecolor variable
(例如,使用第一列的整数部分并添加1)

或者,如果要在两种颜色之间进行选择,也可以使用三值运算符:

plot "-" using 1:2:($1  > 1 ? 1 : 3) with yerrorbars linecolor variable
(例如,如果第一列中的值大于1,则选择linecolor 1,否则选择linecolor 3)

“使用”指定哪些列将作为命令的输入。因此,由于第三列是linecolor,而yerrorbars linecolor希望第四列是线条颜色,因此需要使用1:2:($1-$2):3进行指定。因此,这是您的示例的更正版本:

reset
plot "-" using 1:2:($1-$2):3 with yerrorbars linecolor variable
# x    y   linecolor
-4.0  -3.8   1
-3.0  -2.9   1
-2.0  -2.1   2 
-1.0  -1.2   1
 1.0   1.1   1
 2.0   2.2   2
 3.0   3.3   3 
 4.0   4.5   3
end

我想问,“linecolor”中的整数对应什么?文档中说,这里的数字指的是某种线型的颜色,我在别处看到过,它表示它对应于线型。这两种我都试过了,但我的情节没有达到我想要的颜色。谢谢