1

我正在尝试创建一个图表,显示来自两个不同数据源的两条线——它们是时间序列。我的问题是一个来源每天都有数据,而另一个来源有零星数据(并且稍后开始)。如下图:

在此处输入图像描述

我使用以下代码:

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有关吗?

谢谢 :)

4

1 回答 1

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 
于 2013-07-31T18:19:55.133 回答