首页 > 解决方案 > Gnuplot:午夜次x轴的日期

问题描述

我有多个具有相似数据的 CSV 文件:(09082020.CSV、10082020.CSV、11082020.CSV、12082020.CSV 等)

DateTime;Temperature[deg C]
16.06.2020 08:00;5.12
16.06.2020 08:01;5.67
16.06.2020 08:02;6.78
16.06.2020 08:03;7.99
16.06.2020 08:04;7.55
...

在 Gnuplot x1- 和 x2- 轴设置是:

set timefmt "%d.%m.%Y %H:%M"
set xdata time
set x2data time
set format x "%H"
set format x2 "%d"
set xtics 3600
set x2tics 3600
set xlabel "Hour"
set x2label "Day of month"

这会在 x 轴和 x2 轴上产生等量的抽动。我希望 x2 轴上的“日期”标签仅在午夜(00:00)出现,而不是每小时出现。如果我将参数“set x2tics”更改为其他值(3600 除外),则 tic 将与 x1 轴相比未对齐。所以我的问题是 - 如何让 Gnuplot 在主要 x 轴上显示 HOUR 并在次要 x 轴上显示 DAY OF MONTH(午夜)。

标签: datetimelabelgnuplotaxis

解决方案


检查以下示例,并在 gnuplot 控制台help linkhelp format. 我的猜测是你正在寻找这样的东西。

代码:

### link x2 time axis to x time axis
reset session
myTimeFmt = "%d.%m.%Y %H:%M"

# create some test data
set print $Data
    do for [i=1:1000] {
        print sprintf("%s %g", strftime(myTimeFmt,time(0)+i*250), i%200)
    }
set print

set xlabel "Hour"
set format x "%H" timedate

set x2label "Day of month"
set format x2 "%d" timedate
set x2tics 3600*24
set link x2 via x inverse x

plot $Data u (timecolumn(1,myTimeFmt)):2 w l notitle

### end of code

结果:

在此处输入图像描述


推荐阅读