我想知道y如何从x中获取值(x存储日期) 我有以下日期
13/3/2014 218.11.11
12/4/2014 218.37.12
5/5/2014 218.31.34
7/5/2015 218.31.10
23/5/2014 218.32.21
4/6/2014 218.41.14
我们有这些日期和这些ips我希望在几个月内存储ips 例: 5/2014 - 3 IPS
在gnuplot图表中我想每个月打印每个ips多少 这是我到现在为止所拥有的
set xlabel 'Date'
set title 'Gnuplot test graph'
set ylabel 'IPS'
set terminal png size 1400,500
set datafile sep ','
set xdata time
set timefmt '%Y-%m-%d %H:%M:%S'
set xrange ["2009/3/27 00:00":"2014/4/11 22:28"]
set xtics nomirror rotate by -45
set grid
set term png
set output 'file.png'
plot 'data.dat'using 1:2 with points
答案 0 :(得分:1)
为了计算相等x值的数量,您可以使用plot ... smooth frequency
使用固定数量的1
作为y值:
set xdata time
set timefmt '%d/%m/%Y'
plot 'data.dat' using 1:(1) smooth frequency
这绘制了每天的条目数。
要按月对值进行分组,您必须将一个月的所有值规范化到本月的第一天。为此,您可以使用tm_mday
函数,该函数根据时间戳为您提供当月的日期:
set yrange [0:*]
set xdata time
set timefmt '%d/%m/%Y'
set xrange['01/03/2014':'01/06/2014']
set xtics 30*24*60*60
set format x '%b %Y'
plot 'data.dat' using (timecolumn(1) - (tm_mday(timecolumn(1))-1)*24*60*60):(1) smooth frequency w lp pt 7 ps 2 notitle