Gnuplot 时间范围限制
Gnuplot time range limit
$data << EOD
1563619139 10
1532083139 9
1500547139 8
1469011139 7
1437388739 6
1405852739 5
1374316739 4
1342780739 3
1311158339 2
1279622339 1
EOD
set terminal png
set xdata time
set timefmt "%s"
set format x '%Y'
unset key
plot '$data' u 1:2
如何仅绘制 2015 年的值?我通过 docs 尝试了 plot ["2015":] '$data' u 1:2
但它没有按预期工作。
我知道我可以编辑 $data,但我不想那样做。
您必须使用与timefmt
相同的格式来指定范围。
plot ["1420092000":] '$data' u 1:2
Gnuplot 中的秒数是从 1970 年开始计算的。
我计算的开始时间考虑了一年中的 365.25 天,因此是 1420092000 秒,但是使用 strptime("%Y","2015")
,正如另一个答案中所报告的,无疑更正确和精确。
您可以添加
set xtics 31557600
只有与年初相对应的主要抽搐。指定的值是必须以秒为单位给出的抽动之间的时间增量。
时间数据有较旧和较新的 gnuplot 语法。
下面的示例使用较新的语法。
检查 help time/date
、help timecolumn
和 help strptime
。
代码:
### time data
reset session
$Data << EOD
1563619139 10
1532083139 9
1500547139 8
1469011139 7
1437388739 6
1405852739 5
1374316739 4
1342780739 3
1311158339 2
1279622339 1
EOD
unset key
set format x "%Y" time
StartTime = strptime("%Y","2015") # 2015-01-01 00:00:00 in seconds after 1970
set xrange[StartTime:]
set xtics StartTime, 3600*24*365 # start time and major tic distance one year in seconds
plot $Data u (timecolumn(1,"%s")):2 w lp pt 7
### end of code
结果:
$data << EOD
1563619139 10
1532083139 9
1500547139 8
1469011139 7
1437388739 6
1405852739 5
1374316739 4
1342780739 3
1311158339 2
1279622339 1
EOD
set terminal png
set xdata time
set timefmt "%s"
set format x '%Y'
unset key
plot '$data' u 1:2
如何仅绘制 2015 年的值?我通过 docs 尝试了 plot ["2015":] '$data' u 1:2
但它没有按预期工作。
我知道我可以编辑 $data,但我不想那样做。
您必须使用与timefmt
相同的格式来指定范围。
plot ["1420092000":] '$data' u 1:2
Gnuplot 中的秒数是从 1970 年开始计算的。
我计算的开始时间考虑了一年中的 365.25 天,因此是 1420092000 秒,但是使用 strptime("%Y","2015")
,正如另一个答案中所报告的,无疑更正确和精确。
您可以添加
set xtics 31557600
只有与年初相对应的主要抽搐。指定的值是必须以秒为单位给出的抽动之间的时间增量。
时间数据有较旧和较新的 gnuplot 语法。
下面的示例使用较新的语法。
检查 help time/date
、help timecolumn
和 help strptime
。
代码:
### time data
reset session
$Data << EOD
1563619139 10
1532083139 9
1500547139 8
1469011139 7
1437388739 6
1405852739 5
1374316739 4
1342780739 3
1311158339 2
1279622339 1
EOD
unset key
set format x "%Y" time
StartTime = strptime("%Y","2015") # 2015-01-01 00:00:00 in seconds after 1970
set xrange[StartTime:]
set xtics StartTime, 3600*24*365 # start time and major tic distance one year in seconds
plot $Data u (timecolumn(1,"%s")):2 w lp pt 7
### end of code
结果: