我有以下数据,并希望将其绘制出来。
#time,load
10,35965.67
15,35233.82
20,35239.05
25,37188.61
30,36622.32
35,36538.27
....
3000,36305.84
在每一行上,第一列是经过的秒数。第二列是每5秒的交易总数。
我想作图:
这是我的配置:
set datafile separator ","
set terminal png size 900,400
set title "Transaction/second graph"
set ylabel "Transactions"
set xlabel "Seconds"
set xdata time
set format x "%s"
set key left top
set grid
plot "output.txt" using 0:1 with lines lw 2 lt 3 title 'tps'
所以Gnuplot生成的图像是:
此图像在轴上反转。我尝试了诸如plot using 1:0
之类的其他解决方案,但遇到了异常。而且,看起来数据不正确。我不知道0/60/120的值是什么...
答案 0 :(得分:2)
如果您的数据以秒为单位,并且只想显示秒,我看不出为什么使用set xdata time
将数据更改为timedata的原因。除非您想将其显示为小时:分钟:秒或天。
因此只需使用:
plot "output.txt" u 1:2 w l lw 2 lt 3 title 'tps'
如果您使用reset session
开始代码,这并没有什么坏处。使用此范围和数字以及可能导致意外结果的其他持久设置进行重置。如果我不使用set output
,则不会关闭输出文件,并且磁盘上有0 kB。
代码:
### simple plot
reset session
set terminal png size 900,400
set output "myOutput.png"
set datafile separator ","
set title "Transaction/second graph"
set ylabel "Transactions"
set xlabel "Seconds"
set key left top
set grid
plot "output.txt" using 1:2 with lines lw 2 lt 3 title 'tps'
set output # close output file and swith back to default
### end of code
结果:
答案 1 :(得分:1)
您还需要告诉gnuplot输入时间的格式。 set format x "%s"
只是表示数字在图表中的格式。
要告诉gnuplot时间以秒为单位,请使用
set timefmt "%s"