首页 > 解决方案 > gnuplot覆盖同一时间不同日期的情节?

问题描述

我有两个同一时间的两天数据文件

date1data.csv

2018.02.03.18:23,4
2018.02.03.19:23,22
2018.02.03.20:23,12
2018.02.03.21:23,3
2018.02.03.22:23,16

date2data.csv

2018.02.04.18:23,1
2018.02.04.19:23,5
2018.02.04.20:23,22
2018.02.04.21:23,5
2018.02.04.22:23,14

如果我绘制它们,我会得到这个图,其中数据是一天又一天绘制的。 如何仅根据时间而不是日期绘制它们,以便它们同时覆盖?这可能吗?我不想在多个窗口中绘制它们。图片

那是我用于绘图的代码:

set datafile separator ","
set terminal pngcairo size 500,200 enhanced font 'Verdana,10' linewidth 1
set output 'test.png'
set xdata time
set timefmt "%Y.%m.%d.%H:%M"
set format x "%H:%M"
plot 'date1data.csv' using 1:2 w lines lw 2 t "day1", 'date2data.csv' using 1:2 w lines lw 2 t "day2"

标签: datetimegnuplotoverlay

解决方案


您可以替换using 1:2为删除第 1 列的时间字符串的日期部分的函数:

set timefmt "%H:%M"
f(v) = substr(stringcolumn(v),12,16)
plot 'date1data.csv' using (f(1)):2 w lines lw 2 t "day1",\
     'date2data.csv' using (f(1)):2 w lines lw 2 t "day2"

在此处输入图像描述


推荐阅读