Gnuplot:午夜第二个 x 轴上的日期
Gnuplot: date at secondary x-axis at midnight
我有多个具有相似数据的 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 除外),则与 x1 轴相比,tic 将错位。所以我的问题是 - 如何让 Gnuplot 在主 x 轴上显示 HOUR 并在辅助 x 轴上显示日期(午夜)。
检查以下示例并在 gnuplot 控制台中 help link
和 help 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
结果:
我有多个具有相似数据的 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 除外),则与 x1 轴相比,tic 将错位。所以我的问题是 - 如何让 Gnuplot 在主 x 轴上显示 HOUR 并在辅助 x 轴上显示日期(午夜)。
检查以下示例并在 gnuplot 控制台中 help link
和 help 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
结果: