1

我必须用 gnuplot 制作一个 shell 脚本来生成我的接口 wlan0 的数据使用情况。这是我尝试过的:

==> 对于 gnuplot :

 set title "Data usage over the current hour"
 unset multiplot
 set xdata time
 set style data lines  
 set term png
 set timefmt '"%M:%S"'
 set xrange ['"00:00"':'"59:59"']
 set xlabel "Time"
 set ylabel "Traffic" 
 set autoscale y  
 set output "datausage.png"
 plot "monitor.dat" using 1:2 t "RX" w lines, "monitor.dat" using 1:3 t "TX" w lines 

==> 这是我的外壳:

 #!/bin/bash
 interface=$1
 mkdir -p /tmp/netiface 
 while true; 
 do
      recus=`ifconfig $interface | awk -F":" 'NR == 8 { print $2}' |awk '{print $2}' | cut -d "(" -f 2`
      transmis=`ifconfig $interface | awk -F":" 'NR == 8 { print $3}' |awk '{print $2}' | cut -d "(" -f 2`
      date=`date +%M:%S`
      echo -e "$date $recus $transmis">>/tmp/netiface/monitor.dat
      sleep 1
 done

===> 监视器.dat

 08:18 823.6 121.4
 08:19 823.6 121.4
 08:20 823.6 121.4
 08:21 823.6 121.4
 08:22 823.7 121.5
 08:23 824.3 121.5
 08:24 824.6 121.5
 08:25 824.6 121.5
 08:26 824.6 121.5
 08:27 824.6 121.5
 08:28 824.6 121.5
 08:29 824.6 121.5
 08:30 824.6 121.5
 08:31 824.6 121.5
 08:32 824.6 121.5

但是当我执行所有这些时,我得到以下结果:

当前图表,没有可见的线条

我应该如何更改我的脚本以便正确绘制我的数据?

4

2 回答 2

1

您是否在控制台中尝试过?我收到关于空 x 范围的警告。

您的 xrange 引起了问题。好像时间有点问题。尝试设置set xrange [*:*],您将看到数据。尝试使用范围值应该可以将您调整到正确的范围。

于 2015-05-22T16:10:59.910 回答
0

只是不要使用这么多引号:

set timefmt "%M:%S"
set xrange ["00:00":"59:59"]

奖励:你的输出会更好看使用:

set format x "%M:%S"
set xtics "15:00"

结果示例

(我更改了您示例文件中的最后一点,以获得更多的小线。)

于 2015-06-02T09:20:58.823 回答