Gnuplot 根据某个整数数据列对图形进行分区

Gnuplot 根据某个整数数据列对图形进行分区,gnuplot,Gnuplot,我有一个数据系列,有两列,时间和值,还有一列是整数,表示数据是如何获得的。比如说 0 15.1 0 1 20.2 0 2 34.3 1 3 41.5 2 4 61.7 1 5 79.6 0 6 48.2 0 7 92.1 1 现在,我通常用 plot "data" u 1:2 w l 但我现在希望使用第三列来用垂直线“划分”图形,这样第三列上具有相同值的两个连续记录可以获得相同的背景。对于第三列中的每个值,将关联一个背景色 在上述数据的情况下,绘图将具有,例如,从时间0到时间2(独占)的蓝色

我有一个数据系列,有两列,时间和值,还有一列是整数,表示数据是如何获得的。比如说

0 15.1 0
1 20.2 0
2 34.3 1
3 41.5 2
4 61.7 1
5 79.6 0
6 48.2 0
7 92.1 1
现在,我通常用

plot "data" u 1:2 w l
但我现在希望使用第三列来用垂直线“划分”图形,这样第三列上具有相同值的两个连续记录可以获得相同的背景。对于第三列中的每个值,将关联一个背景色

在上述数据的情况下,绘图将具有,例如,从时间0到时间2(独占)的蓝色背景列,从2到3的绿色背景列,从3到4的红色背景列,从4到5的绿色背景列,依此类推

另一个解决方案(我实际上可能更喜欢)是在第三列的值切换其值的位置有一条垂直线,并且图形的每个区域都有一个与第三列的值相对应的标签(比如在顶轴上)

有什么想法吗?谢谢

编辑: 下面是我想要得到的一个例子。第三列的值放置在顶部

top=100
set yrange [:top]

unset colorbox
set style fill solid 1.0
set palette defined (0 "blue",1 "green", 2 "red")

plot "data.dat" u ($1+.5):(top):3 w boxes lt palette,"" u 1:2 w l lc -1 lw 2


设置调色板
定义与第三列对应的颜色
.5
是移位,因为直方图以它的中心值为中心。

太棒了!谢谢!