我无法使用 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"
(我更改了示例文件中的最后一点以获得更多的小行。)
我必须用 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"
(我更改了示例文件中的最后一点以获得更多的小行。)