gnuplot:按日期过滤而不使用xdata

时间:2014-03-16 14:02:03

标签: time gnuplot

我已经搜索了一段时间来解决gnuplot的以下问题,但我找不到任何有用的信息。我希望有人可以帮助我:

我有数据显示用户在特定日期达到的百分比,例如:

DATE;USERID;PERCENTAGE
2012-03-14;1;92.14
2012-03-13;2;93.55
2012-04-14;1;97.14
2012-04-13;2;83.55
2012-05-14;1;94.14
2012-05-13;1;95.55

我希望从2012年4月开始绘制每位用户的实现百分比(该图适用于所有日期)。

我无法使用

set xdata time

因为x轴应该包含userId。不幸的是,以下失败了:

set datafile separator ";"
set timefmt "%Y-%m-%d"
plot bla.csv using 2:(timecolumn(1) > 2012-05-01 ? $3 : 1/0)

导致警告"字符串中的错误时间格式"并且根本没有过滤。

我几个小时都坚持这个,无法找到任何东西......

1 个答案:

答案 0 :(得分:1)

timecolumn语句中使用using时,相应的值以秒为单位。因此,将从数据文件中读取的时间戳与2012进行比较,2012是从表达式中提取的数值。

使用strptime格式化比较日期:

set datafile separator ";"
fmt = "%Y-%m-%d"
set timefmt fmt
plot 'bla.csv' using 2:(timecolumn(1) > strptime(fmt, "2012-05-01") ? $3 : 1/0)