我正在尝试创建一个图表,显示来自两个不同数据源的两行 - 这些是时间序列。我的问题是,一个源每天都有数据,另一个源有零星数据(并且稍后开始)。如下图所示:
我使用以下代码:
set autoscale xfixmax
set autoscale xfixmin
set xdata time
set timefmt "%s"
set format x "%m/%y"
set y2tics
set terminal png size 1000,500
set datafile sep ','
plot 'a.csv' using 1:2 with line lw 1.2 title 'a' axes x1y1, \
'b.csv' using 2:5 with steps lw 2 title 'b' axes x1y2
我只想绘制他们都有数据的时期。这可能与GNUPlot有关吗?
谢谢:)
答案 0 :(得分:2)
您可以使用stats
命令确定两个数据文件的xrange。这在timedata模式下不起作用,但由于您有时间戳作为时间戳,您可以在设置为timedata模式之前执行此操作:
set datafile sep ','
stats 'a.csv' using 1:2 prefix 'a'
stats 'b.csv' using 2:5 prefix 'b'
xmin = (a_min_x < b_min_x ? b_min_x : a_min_x)
xmax = (a_max_x < b_max_x ? a_max_x : b_max_x)
set xdata time
set timefmt "%s"
set format x "%m/%y"
set y2tics
set xrange[xmin:xmax]
set terminal png size 1000,500
plot 'a.csv' using 1:2 with line lw 1.2 title 'a' axes x1y1, \
'b.csv' using 2:5 with steps lw 2 title 'b' axes x1y2