Gnuplot从不同的CSV列构造timefmt?

问题描述:

我有以下csv文件,其中列分别代表hour,minute,view count,分别为每天的每分钟完全1440个条目。我想用gnuplot来绘制它。 (把HH:MM成一列是不可能的,由于MySQL只FULL GROUP BY)Gnuplot从不同的CSV列构造timefmt?

"0","0","71" 
"0","1","55" 
"0","2","56" 
... 
"23","57","66" 
"23","58","70" 
"23","59","75" 

目前我使用下面的命令:

set datafile separator "," 
set timefmt "%H,%M" 
set xdata time 
set xtics format "%H:%M" time font "/:normal,8" rotate by 45 offset -1,-1 

时间格式不正确呈现,小时数被解释为分钟数,分钟数完全不显示。 我也试过set timefmt "\"%H\",\"%M\""没有成功。

x plotting timestamps

两个问题:

  • 我如何解析小时:分钟并正确显示呢?
  • 如果这个数据文件有更多的列,时间戳不在第一个,但在第n个,那么我该如何指定gnuplot来渲染它,类似using 0:n对于plot

利用这段时间格式字符串

set timefmt "%H:%M" 

将这个功能的话:

plot 'data.dat' u (catdate($1,$2)):($3) w l 

catdate(x,y)=sprintf("%d:%d",x,y) 

然后绘制