gnuplot,绘制一段时间内的单个事件

gnuplot,绘制一段时间内的单个事件,gnuplot,Gnuplot,我有一些来自日志文件的数据。我想画出一段时间内发生错误的次数 例如: 09:00:01, error_1, blah blah blah 09:00:10, error_1, blah blah blah 09:00:23, error_1, blah blah blah 09:01:10, error_2, blah blah blah 09:07:01, error_1, blah blah blah 09:07:43, error_1, blah blah blah 09:11:03, e

我有一些来自日志文件的数据。我想画出一段时间内发生错误的次数

例如:

09:00:01, error_1, blah blah blah 09:00:10, error_1, blah blah blah 09:00:23, error_1, blah blah blah 09:01:10, error_2, blah blah blah 09:07:01, error_1, blah blah blah 09:07:43, error_1, blah blah blah 09:11:03, error_1, blah blah blah 09:18:10, error_1, blah blah blah 09:40:57, error_2, blah blah blah 09:41:23, error_1, blah blah blah ... 23:32:20 error_1 09:00:01,错误1,诸如此类 09:00:10,错误1,诸如此类 09:00:23,错误1,诸如此类 09:01:10,错误2,诸如此类 09:07:01,错误1,诸如此类 09:07:43,错误1,诸如此类 09:11:03,错误1,诸如此类 09:18:10,错误1,诸如此类 09:40:57,错误2,诸如此类 09:41:23,错误1,诸如此类 ... 23:32:20错误1 根据上面的内容,我想画出这些值,这样我就可以显示一周,每个点以小时为间隔,并显示该小时的“误差_1”之和。。。希望这是有道理的

如果有人能帮助我,我将不胜感激!如果有一种完全用gnuplot实现的方法,那就更好了


谢谢

您希望让gnuplot执行binning以创建一个新的应用程序。唯一的技巧是需要根据行的错误代码过滤掉行。您可能可以在gnuplot中进行过滤,但是使用
grep
这样的工具要容易得多

set xdata time
set timefmt '%H:%M:%S'
set datafile sep ','
binwidth = 3600  #3600 seconds in an hour.
bin(x,width) = width*floor(x/width)
plot for [ERR in "error_1 error_2"] sprintf('<grep %s test.dat',ERR) u (bin($1,binwidth)):(1.0) smooth freq w boxes ti ERR
设置扩展数据时间
设置时间表“%H:%M:%S”
设置数据文件sep','
binwidth=一小时内3600#3600秒。
箱子(x,宽度)=宽度*地板(x/宽度)

为[ERR in“error\u 1 error\u 2”]sprintf(“你怎么知道今天是哪一天?日志文件似乎没有包含这些信息..谢谢!我想我知道了你在这里做的大部分事情..什么是:(1.0)在做什么?另外,我得到了一个错误“all points y undefined!”,错误一直指向行的末尾。
(1.0)
是文本常量1。它为每个落入特定存储箱的数据添加一个值。嘿,感谢您的帮助!我遇到了一些错误,无法确定我做错了什么。以下是我正在使用的gnuplot命令。
设置timemt“%m/%d/%Y%H:%m”设置扩展数据时间设置终端png大小1024768设置输出“xxx.png”\n设置格式x”%m/%d\n%H:%m“设置范围[“11/6/2012 20:19:“11/7/2012 10:00”]binwidth=3600#3600秒在一小时内。bin(x,width)=width*floor(x/width)为[HBER RX_故障中的错误]绘制sprintf(“这是我试图绘制的日志样本。
xxxx/radio-1.4.123123132.1,接收失败,少校,2012年11月7日16:52,11/7/2012 16:52
xxxx/radio-1.4.123123123.1,HBER,少校,2012年11月7日16:52,11/7/2012 16:52