我已经搜索了一段时间来解决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)
导致警告"字符串中的错误时间格式"并且根本没有过滤。
我几个小时都坚持这个,无法找到任何东西......
答案 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)