来自x(日期)的Gnuplot y轴值

时间:2014-12-02 18:00:08

标签: date gnuplot

我想知道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 

1 个答案:

答案 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

enter image description here