Gnuplot 基于开/关打印多个时间点

Gnuplot 基于开/关打印多个时间点,gnuplot,Gnuplot,我有一大系列的数据库连接,这些连接使用了一段时间,然后在再次调用之前停止 我希望绘制它们在一段时间内的使用情况,因此我将为每个连接绘制一条线,随着时间的推移,这些线会打开和关闭 数据基本上可以格式化,但是需要格式化,但作为一个例子,它可以如下所示 2018-03-01 20:31:00,000Z foo start 2018-03-01 20:31:00,100Z bar start 2018-03-01 20:31:00,300Z bar stop 2018-03-01 20:31:00,40

我有一大系列的数据库连接,这些连接使用了一段时间,然后在再次调用之前停止

我希望绘制它们在一段时间内的使用情况,因此我将为每个连接绘制一条线,随着时间的推移,这些线会打开和关闭

数据基本上可以格式化,但是需要格式化,但作为一个例子,它可以如下所示

2018-03-01 20:31:00,000Z foo start
2018-03-01 20:31:00,100Z bar start
2018-03-01 20:31:00,300Z bar stop
2018-03-01 20:31:00,400Z foo stop
2018-03-01 20:31:00,600Z bar start
2018-03-01 20:31:00,900Z bar stop
foo ****
bar  **   ***
    0123456789
情节是这样的

2018-03-01 20:31:00,000Z foo start
2018-03-01 20:31:00,100Z bar start
2018-03-01 20:31:00,300Z bar stop
2018-03-01 20:31:00,400Z foo stop
2018-03-01 20:31:00,600Z bar start
2018-03-01 20:31:00,900Z bar stop
foo ****
bar  **   ***
    0123456789

bootom上的数字表示100千秒

我认为这超出了“纯”Gnuplot所能提供的范围。但是,可以对数据文件进行预处理,以使其更易于Gnuplot消化。例如,下面的示例脚本遍历数据,以100毫秒为单位表示日期/时间,并为每个事件(
foo
/
bar
)标记相应的时间
t
所述事件在时间
t
有多少实例处于活动状态。加载整个文件后,它将处理这些数据,并为每个事件打印事件至少运行1个实例的所有时间间隔。它的优点是还支持相同类型的重叠事件(即同时连接)

对于以下示例数据:

2018-03-01 20:31:00,000Z foo start
2018-03-01 20:31:00,000Z foo start
2018-03-01 20:31:00,100Z bar start
2018-03-01 20:31:00,300Z bar stop
2018-03-01 20:31:00,400Z foo stop
2018-03-01 20:31:00,600Z bar start
2018-03-01 20:31:00,900Z bar stop
2018-03-01 20:31:00,900Z foo stop
这将产生:

#0  bar
1   0   1
3   0   1

6   0   1
9   0   1

#1  foo
0   1   2
4   1   2

4   1   1
9   1   1
这意味着,例如,事件
1
foo
)有两个实例在区间
[0,4]
上运行,而
[4,9]
上只有一个实例。然后,该输出可由Gnuplot直接处理