gnuplot画图;现值班表是execl做的,想法:用perl智能排班,CGI显示

谢谢各位!
已经用gnuplot画出自己想要的图,见附件。
plot '/home/gaochong/dns/dns2.dat' using 1:2 with linespoints pointtype 5,'/home/gaochong/dns/dns2.dat' using 1:3 with linespoints pointtype 10
不知道为什么上个命令划出的图不对。 dns.rar (2.7 KB)

不过我还要用rrd tool划,我不想日复一日让这个图太大。。。
因为我要分别看周、月、季、年的趋势图

但是,为什么图中横坐标不是正常显示,而是没一天显示2次?(如图)
如何修改这个问题?我试了很多次都没成功,希望各位指点。


请各位及版主看看这个图,为什么横坐标显示不正常?我的code如下,请各位指出错误,应该如何设置?谢谢各位!

set xlabel 'x-date'
set ylabel 'y-ms'
set mxtics 1
set title 'dns resolve root-time delay from the following site'
set key top left
set key box
set term postscript
set output '/var/log/delay/delay.ps'
set xdata time
set timefmt "%d-%b-%y"
set format x "%d-%b"
plot ["18-Feb-08":"21-Feb-08"] '/var/log/dns.log' using 1:2 title "sina.com.cn" with lines linetype 1,


QUOTE:
原帖由 gaochong 于 2008-2-19 16:28 发表
最终代码:

my $date=`date`;
print $date;

这两行在windows下不能用。
随便学习学习!
谢谢。
但是这个问题已经搞定,我是在freebsd下。
我用的
my $date=`date +%d-%b-%y`;
print "$date ";

现在的问题是 gnuplot 划出的图横坐标显示不对。
请各位指点!
并没有修改gnuplot配置,只是修改了时间,横坐标显示就正常了,见附件。
反正已经解决这个问题了。 delay.rar (182.38 KB)

20080224-06:30:00 251534
20080224-06:30:00 1122558
20080225-06:30:00 244922
20080225-06:30:00 1015100

我希望转换成
20080224-06:30:00 251534 1122558
20080225-06:30:00 244922 1015100

open RADNUM,"/home/gaochong/perl/radnum.log"
or die "can't open the radnum.log\n";
open RADNUM2,">>/home/gaochong/perl/radnum2.log"
or die "can't write to the radnum2.log\n";
my %hash;
while (<RADNUM>) {
        my @list=split;
        if (exists $hash{$list[0]}) {
                print RADNUM2 "$list[1]\n";
        } else {
                $hash{$list[0]}=$list[1];
                print RADNUM2 "$list[0]" . " $list[1] ";
        }
}

问题没有解决:
文本文件包含大量内容格式如下:
......
20080225-00:00:00 45198
20080225-01:00:00 35920
......
20080225-22:00:00 77195
20080225-23:00:00 61525
如何得到某一日期(20080225)和当天最大的值呢?
得到如下结果:
20080225 77195
请各位指点个思路。

#!/usr/bin/perl


use strict;
use warnings;

open INPUT,"file" or die "$!";
open OUTPUT,">file" or die "$!";
my (%hash,@list);
while (<INPUT>) {
    if (/^\d+-(?:\d\d:){2}\d\d\s\d+) {
        if (exists $hash{$list[0]}) {
            if ($hash{$list[0]} < $list[2]) {
                    $hash{$list[0]}=$list[2];
                  }
            } else {
               $hash{$list[0]}=$list[2];
          }
   }
}
foreach (sort keys %hash) {
    print OUTPUT "$_ $hash{$_}\n";
}
close INPUT;
close OUTPUT;