3

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

例如:

09:00:01,error_1,等等等等
09:00:10,error_1,等等等等
09:00:23,error_1,等等等等
09:01:10,error_2,等等等等
09:07:01,error_1,等等等等
09:07:43,error_1,等等等等
09:11:03,error_1,等等等等
09:18:10,error_1,等等等等
09:40:57,error_2,等等等等
09:41:23,error_1,等等等等
...
23:32:20 错误_1

因此,通过上述内容,我想绘制这些值,以便我可以显示一个星期,其中各个点以小时为间隔,并显示该小时的“error_1”总和......希望这是有道理的。

如果有人可以帮助我,将不胜感激!如果有办法完全用 gnuplot 做到这一点,那就更好了。

谢谢!

4

1 回答 1

0

您正在寻找让 gnuplot 进行分箱以制作histogram。唯一的技巧是您需要根据错误代码过滤掉行。您可能可以在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
于 2012-11-09T20:33:15.690 回答