gnuplot:绘制数据并使用重复x值的最大值

Jon*_*Zoo 11 plot gnuplot

我想用两列绘制一个巨大数据文件的曲线:

datafile(示例):

#dateYMD sum
2014-02-01 70
2014-02-01 85
2014-02-01 95
2014-02-02 116
2014-02-02 123
2014-02-09 130
2014-02-09 134
2014-02-11 145
Run Code Online (Sandbox Code Playgroud)

如果我使用"plot'data.txt'使用0:1和行"并设置日期格式等,我会得到一个几乎正确的情节,但不幸的是,如果不止一个,它会使用"lower/upper"值给出了每个日期的行数.我想在我的情节中绘制每天总和列的最大值.我想使用每天的最后/最高给定值.

Chr*_*oph 4

这有点棘手。我对使用框在同一文件上绘制不同的列的回答显示了如何对数字 x 轴完成此操作。如果您有时间数据,则必须使用timecolumn(1)代替$1,就是这样:

reset
xval = -1e10
max(x, y) = (x > y ? x : y)
maxval = 0

set timefmt '%Y-%m-%d'
set xdata time

plot 'data.txt' using (val = $2, timecolumn(1)):\
     (maxval_prev = (xval == timecolumn(1) ? maxval : 0), \
      maxval = (xval == timecolumn(1) ? max(maxval, val) : val),\
      xval = timecolumn(1), \
      (maxval > maxval_prev ? maxval-maxval_prev : 0)\
     ) \
     smooth frequency lw 3 with linespoints t 'maximum values'
Run Code Online (Sandbox Code Playgroud)

结果如下(4.6.3):

在此输入图像描述

有关更详细的解释,请参阅上面链接的答案。