我正在使用 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"
没有解决问题(见附图)。
没有解释为什么以下没有给出预期结果,
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
结果: