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