Gnuplot日期与日期

时间:2018-05-08 06:34:01

标签: gnuplot

如何在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 Julian日,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 个答案:

答案 0 :(得分: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 :(得分: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