使用 gnuplot 绘制单个值?
Plotting a single value with gnuplot?
我有以下 csv 文件:
timestamp,unit,maximum,average
Thu Feb 05 14:54:00 GMT 2015,Percent,13.0,4.503333333333333
当我运行以下bash脚本就可以了:
#!/bin/bash
graph_results() {
input=cpu-samples.csv
output=cpu-samples.png
gnuplot <<- eor
set terminal png
set output '${output}'
set style data linespoints
set xdata time
set timefmt '%b %d %H:%M:%S GMT %Y'
set format x '%b %d %Y %H:%M'
set datafile separator ","
set xlabel "timestamp"
set ylabel "percent"
set xtics rotate
plot '< tail -n +2 ${input} | cut -f 1 --complement -d" "' using 1:3 title 'Maximum', '' using 1:4 title 'Average'
eor
}
graph_results
我收到以下错误:
bash-4.1$ ./run_gnuplot
Could not find/open font when opening font "arial", using internal non-scalable font
Warning: empty x range [4.76463e+08:4.76463e+08], adjusting to [4.71699e+08:4.81228e+08]
生成的图表上有正确的数据点和时间戳,但图表中 x 轴的日期值不正确。
当 csv 文件中有多个值时,它工作正常,但只有一个值时则不然。我意识到错误消息是因为对于一个值,x 轴的开始和结束范围是相同的(如此处所述http://gnuplot.10905.n7.nabble.com/empty-x-range-td1650.html)。
我知道我可以设置一个范围如下:
set xrange
但我不确定在我的案例中如何使用,因为我使用的是自定义日期格式,而且我不知道开始日期和结束日期应该是什么,因为生成的数据是动态的?
使用自定义 timefmt
时,还必须使用以下格式指定 xrange
:
set xrange ["Feb 04 00:00:00 GMT 2015":"Feb 09 00:00:00 GMT 2015"]
或者您可以使用整数、i.e.a 时间戳来设置 xrange。对于 5.0 版,下面的行等同于上面的字符串设置:
set xrange [1423008000:1423440000]
请注意,在 4.6 版本之前,gnuplot 使用 2000 年 1 月的第一个时间作为其时间戳的时间参考,并且仅从 5.0 开始使用标准的 Unix 时间戳。所以在 4.6 之前,第一行中字符串设置的等效命令是
set xrange [476323200:476755200]
我有以下 csv 文件:
timestamp,unit,maximum,average
Thu Feb 05 14:54:00 GMT 2015,Percent,13.0,4.503333333333333
当我运行以下bash脚本就可以了:
#!/bin/bash
graph_results() {
input=cpu-samples.csv
output=cpu-samples.png
gnuplot <<- eor
set terminal png
set output '${output}'
set style data linespoints
set xdata time
set timefmt '%b %d %H:%M:%S GMT %Y'
set format x '%b %d %Y %H:%M'
set datafile separator ","
set xlabel "timestamp"
set ylabel "percent"
set xtics rotate
plot '< tail -n +2 ${input} | cut -f 1 --complement -d" "' using 1:3 title 'Maximum', '' using 1:4 title 'Average'
eor
}
graph_results
我收到以下错误:
bash-4.1$ ./run_gnuplot
Could not find/open font when opening font "arial", using internal non-scalable font
Warning: empty x range [4.76463e+08:4.76463e+08], adjusting to [4.71699e+08:4.81228e+08]
生成的图表上有正确的数据点和时间戳,但图表中 x 轴的日期值不正确。
当 csv 文件中有多个值时,它工作正常,但只有一个值时则不然。我意识到错误消息是因为对于一个值,x 轴的开始和结束范围是相同的(如此处所述http://gnuplot.10905.n7.nabble.com/empty-x-range-td1650.html)。
我知道我可以设置一个范围如下:
set xrange
但我不确定在我的案例中如何使用,因为我使用的是自定义日期格式,而且我不知道开始日期和结束日期应该是什么,因为生成的数据是动态的?
使用自定义 timefmt
时,还必须使用以下格式指定 xrange
:
set xrange ["Feb 04 00:00:00 GMT 2015":"Feb 09 00:00:00 GMT 2015"]
或者您可以使用整数、i.e.a 时间戳来设置 xrange。对于 5.0 版,下面的行等同于上面的字符串设置:
set xrange [1423008000:1423440000]
请注意,在 4.6 版本之前,gnuplot 使用 2000 年 1 月的第一个时间作为其时间戳的时间参考,并且仅从 5.0 开始使用标准的 Unix 时间戳。所以在 4.6 之前,第一行中字符串设置的等效命令是
set xrange [476323200:476755200]