Gnuplot 将运行总数转换为每日计数

Gnuplot 将运行总数转换为每日计数,gnuplot,Gnuplot,这感觉像是一个基本的高中数学问题,我显然已经忘记了。总之,我有如下数据: $Data << EOD 2020-08-09 4 2020-08-10 5 2020-08-11 6 2020-08-13 7 2020-08-14 8 EOD set xdata time set timefmt "%Y-%m-%d" plot $Data u 1:2 $Data编辑:分段获取更多信息后的修订版 打印就像循环数据列一样。在下面的代码中,x0和y0保留以前的值,x1和y1

这感觉像是一个基本的高中数学问题,我显然已经忘记了。总之,我有如下数据:

$Data << EOD
2020-08-09 4
2020-08-10 5
2020-08-11 6
2020-08-13 7
2020-08-14 8
EOD
set xdata time
set timefmt "%Y-%m-%d"
plot $Data u 1:2

$Data编辑:分段获取更多信息后的修订版

打印就像循环数据列一样。在下面的代码中,
x0
y0
保留以前的值,
x1
y1
保留当前值。每日变化是
(y1-y0)
除以
(x1-x0)
乘以3600*24。记住,在gnuplot中,日期和时间是以从1970年1月1日00:00:00起经过的秒为单位在内部处理的。检查帮助时间/日期
。同时检查帮助操作二进制和串行计算

数据:
Singapore.csv

请注意,文件中的日期格式会发生更改。但在这里,这并不重要

Singapore,2020-08-22 04:27:49,1.2833,103.8333,56216,27,53651,2538,Singapore,960.9009249543145,0.048029030880888
...
Singapore,2020-02-05T16:33:03,28,0,0
代码:

### plot daily change 
reset session

FILE = "Singapore.csv"
set datafile separator comma

set format x "%m/%d" timedate
x1=NaN
y1=NaN
plot FILE u (x0=x1,x1=timecolumn(2,"%Y-%m-%d")):(y0=y1,y1=$5,(y1-y0)/(x1-x0)*3600*24) \
    w lp pt 7 title "Daily change"
### end of code
结果:

### plot daily change 
reset session

FILE = "Singapore.csv"
set datafile separator comma

set format x "%m/%d" timedate
x1=NaN
y1=NaN
plot FILE u (x0=x1,x1=timecolumn(2,"%Y-%m-%d")):(y0=y1,y1=$5,(y1-y0)/(x1-x0)*3600*24) \
    w lp pt 7 title "Daily change"
### end of code

绘制了第一个点,y轴不是从零开始的。我不太明白如何引用y的第二列,因为在我的数据中,有几列需要处理:
$2
是数据的列。如果您的数据在第7列,请填写
$7
列(7)
。谢谢,但为什么我在这里得到负值?因为你的数据与你的问题不同。a) 它是相反的,即最新的日期在开始,b)它不是严格的每日基础,c)日期/时间格式实际上是
%Y-%m-%d%H:%m:%s“
(但可能后者并不重要)。好吧,你可以让你的数据保持原样,只需将
y1-y0
替换为
y0-y1
。你的x轴是乱七八糟的,因为你每天设置一个tic
set xtics 3600*24
7个月内这将是大约200个tic标签。根本没有足够的空间。所以只要跳过这一行,gnuplot就会自动生成xlabel。只是要提到的是,你的数据显然不是每天都有规律的,所以你绘制的数字并不都是每天都在增加,但其中一些数字会在两天或更长的时间内增加。我想我应该修改答案以涵盖一般情况。
### plot daily change 
reset session

FILE = "Singapore.csv"
set datafile separator comma

set format x "%m/%d" timedate
x1=NaN
y1=NaN
plot FILE u (x0=x1,x1=timecolumn(2,"%Y-%m-%d")):(y0=y1,y1=$5,(y1-y0)/(x1-x0)*3600*24) \
    w lp pt 7 title "Daily change"
### end of code