gnuplot 中一年中的某一天的 Timefmt

问题描述 投票:0回答:1

我正在使用 gnuplot 5.4.4

如何使伪列 0 显示一年中的某一天并使用 xdata 时间正确处理此问题?

显示问题的最小工作示例:

plot filename u 0:1

文件的每一行代表从 1 月 1 日开始的一年中的一天。因此,我按照手册将 x 轴设置为显示时间,并将时间格式说明符设置为 %j(一年中的某一天 1-365)。

set xdata time; set timefmt "%j"; replot

从结果来看(参见所附的最小工作示例图),特殊列 $0 似乎被解释为一分钟而不是一年中的一天。使用

重新格式化 xtics 标签
   set format x "%j" 

没有解决问题(见附图)。

datetime gnuplot
1个回答
0
投票

没有解释为什么以下没有给出预期结果,

reset session
set xdata time
set timefmt "%j"
set format x "%j"
set samples 366

plot '+' u 0:1

我只是推测

"%j"
可能无法用作输入格式,并且 gnuplot 仍然认为输入是默认的
"%s"
,即自 Unix 纪元(1970-01-01 00:00 UTC)以来的秒数。因此,为了获得所需的输出,请将伪列
$0
乘以每天的秒数,即
24*3600

reset session
set xdata time
set timefmt "%j"
set format x "%j"
set samples 366

plot '+' u ($0*24*3600):1

结果:

© www.soinside.com 2019 - 2024. All rights reserved.