Gnuplot日期与日期之间的比较

3
如何在gnuplot中绘制以下数据:
101,2018,116,1500,3.457
101,2018,116,1515,3.456
101,2018,116,1530,3.458
101,2018,116,1545,3.458
101,2018,116,1600,3.457

我需要将数据(第5列)绘制成时间(第2、3和4列)图表。第2列是年份,第3列是儒略日,第4列是HHMM格式的时间。这是我尝试过的方法:

set xdata time
set timefmt "%Y,%j,%H%M"
set xrange ["1/15/2018":"8/02/2018"]
set yrange [0:5]

plot 'du1piezometerslong050318.dat' using 2:5 title 'July time series' with lp lw 4 pt 7 ps 0.75
2个回答

2

默认情况下, gnuplot 期望数据以空格分隔。所以你需要这样做:

set datafile separator ","

在输入数据中,第116天是4月26日,所以1月到2月的xrange不包括那一天。指定的xrange格式应与timefmt(年,日,小时/分钟)相同:

set xrange ["2018,116,1500":"2018,116,1600"]

yrange已经起作用了,但是范围太大了,难以看出差异。不设置yrange并让gnuplot自己解决可能是可以的。

最终的gnuplot脚本如下:

set xdata time
set timefmt "%Y,%j,%H%M"
set xrange ["2018,116,1500":"2018,116,1600"]
set datafile separator ","
plot 'data.dat' using 2:5 title 'time series' with lp lw 4 pt 7 ps 0.75


1
#specify that our columns are separated with ','
set datafile separator ","

set xdata time
set timefmt "%Y,%j,%H%M"

#specify the output formatting of the x-tics
set format x "%Y-%m-%d"

#set xrange in a format compatible with 'timefmt' above
set xrange ["2018,116,0000":"2018,117,0000"]
set yrange [0:5]

#assembly the specified timefmt from input columns
plot 'test.dat' using (sprintf('%04d,%03d,%04d',$2,$3,$4)):5 w lp

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接