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

时间:2013-06-22 15:10:47

标签: 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(不包括)的蓝色背景列,从2到3的绿色背景列,从3到4的红色,再次从4到5绿色,依此类推。

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

有什么想法吗?谢谢!

编辑: 下面是我想要获得的一个例子。第三列的值位于顶部。

Partition plot with vertical lines

1 个答案:

答案 0 :(得分:2)

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

set palette定义与第三列对应的颜色。 .5是移位,因为直方图以其中心值为中心。