gpt4 book ai didi

gnuplot - gnuplot 5 中的时间/日期处理

转载 作者:行者123 更新时间:2023-12-01 00:35:46 24 4
gpt4 key购买 nike

我有以下数据集

0   22/01   5:40.416    07/01   5:59.149
1 29/01 5:49.765 14/01 5:59.036
2 05/02 5:45.675 21/01 5:52.160
3 12/02 5:44.241 28/01 5:55.160
4 19/02 5:49.330 04/02 5:44.065
5 26/02 5:48.044 11/02 5:34.803

我想将第 3 列绘制为 2 的函数(也将 5 绘制为 4 的函数,但这不是问题)。格式为日/月和分钟:秒.xxx。

在 gnuplot 4.6 中,通过为 x 和 y 设置不同的时间格式来指示如何读取两列有些简单。一个有效的最小脚本是:
set xdata time
set timefmt x "%d/%m"
set format x "%b"

set ydata time
set timefmt y "%M:%S"
set format y "%M:%S"

plot 'data.dat' using 2:3

我最近升级到 gnuplot 5 和命令 set timefmt x "%d/%m" (及其 y 等效项)现在给出错误。好像不能放 xy不再,你只能使用一个 timefmt对于整个脚本。

release notes声明

Use of time formats to generate axis tick labels is now controlled by set {xy}tics time rather than by set {xy}data time. Thus prior calls to set xdata time or set timefmt x are unnecessary for either input or output. These older commands still work, but are deprecated.



我有两个问题。首先,尽管表明“旧命令仍然有效”,但我在 set timefmt x "%d/%m" 上收到错误消息。 .其次,也是最重要的,我不知道如何教 gnuplot 如何使用新命令读取 x 和 y 列。

注:我见过 this question从 2011 年开始,但我觉得它不优雅,我想保留当前格式的文件。

最佳答案

他们对这个新版本所做的改进实际上使它更加灵活。您可以为每个特定时间列指定一种格式,而不是指定默认时间格式然后要求您的列适合该格式。这样您就不必保持一致,只要您指定每列的格式即可。您还可以对多个 x 或 y 轴使用时间格式。

您引用的发行说明中提到了您问题的解决方案,但没有很好地解释它。使用 timecolumn(N,"timeformat")函数,如下所示:

set xtics time
set format x "%b"

set ytics time
set format y "%M:%S"

plot 'data.dat' using (timecolumn(2, "%d/%m")):(timecolumn(3, "%M:%S"))
set timefmt行已被这个新的两个参数取代 timefunction() ,它允许您为 using 中的每一列指定格式条款。请注意 ()周围 timecolumn() .这意味着您可以(如果您愿意)对时间值进行一些数学运算。同据 5.0 release notes :

Time coordinates are stored internally as the number of seconds relative to the standard unix epoch 1-Jan-1970. Earlier versions of gnuplot used a different epoch internally (1-Jan-2000). This change resolves inconsistencies introduced when time in seconds was generated externally. The epoch convention used by a particular gnuplot installation can be determined using the command print strftime("%F",0). Time is now stored to at least millisecond precision.



注意对 set xtics time 的更改. xtics 的输出格式与您的示例中的相同,并且与 timecolumn() 的第二个参数给出的输入格式不同。 .您似乎比以前更灵活,但语法已更改。

关于gnuplot - gnuplot 5 中的时间/日期处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41317275/

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