我无法使用 shell 脚本在 gnuplot 中获得结果

i can't get the results in gnuplot using shell scripting

我必须用 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 

==> 这是我的 shell :

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

===> monitor.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

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

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

你在控制台试过了吗?我收到有关空 x 范围的警告。

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

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

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

奖励:你的输出看起来会更好:

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

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