gpt4 book ai didi

gnuplot - 如何根据其数据更改时间格式

转载 作者:行者123 更新时间:2023-12-01 23:53:31 26 4
gpt4 key购买 nike

你知道如何根据它的数据改变时间格式吗?如果日期是这样的一月,我想在 X 轴上添加年份信息。

2013/01/01, 02/01, 03/01, ..., 11/01, 12/01, 2014/01/01, 02/21,....

我知道设置格式命令来改变它。

set format x "%m/%d"

set format x "%Y/%m/%d"

但是我不知道怎么定制。

谢谢。

最佳答案

这不是那么简单,因为正如您所说,使用 gnuplot 您只能设置一种格式而无需任何条件。

您可以通过使用 set xtics add 手动设置年份信息来解决这个问题,就像在非常相似的问题 mixing date and time on gnuplot xaxis 中所做的那样.

这是一个工作脚本:

set xdata time
set timefmt '%Y-%m-%d %H:%M'
set format x '%m/%d'
set xrange ['2013-01-01 00:00':*]
set xtics '2013-01-01 00:00', 3*30*24*60*60

set xtics add ('2013/01/01' '2013-01-01 00:00', '2014/01/01' '2014-01-01 00:00')

plot 'data.dat' using 1:3 with linespoints

因此,您首先要设置输入数据的格式。在这里,我明确选择了不同的输入格式,以便您可以区分需要哪种格式。

然后您设置 x 轴的输出格式,这对应于您想要的中间月份。

接下来,我明确地为 xrange 设置了一个起始值,以便范围从一月开始(因为我每三个月设置一个标签,使用 set xtics ...)。

作为最后一步,您使用自定义格式手动覆盖一月标签。如果你有几年时间或者你想灵活一点,这种形式可能会有点麻烦。在一定范围内迭代不是问题。超出显示范围的标签将被忽略。所以你可以使用:

set for [y=2000:2014] xtics add (sprintf('%d/01/01', y) ''.y.'-01-01 00:00')

(注意,sprintf 不能用于第二个字符串。)

使用以下测试数据文件data.dat:

2013-01-01 00:00 12
2013-02-01 12:00 15
2013-04-01 00:00 1
2013-12-01 00:00 11
2014-01-01 14:00 14
2014-04-01 03:00 20

我得到了结果(使用 4.6.5):

plot showing result

关于gnuplot - 如何根据其数据更改时间格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25300032/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com