从包含时间数据的文件绘制时值不正确 - gnuplot

时间:2014-03-18 15:01:47

标签: gnuplot

我尝试使用gnuplot生成图表,但似乎它没有显示正确的值: 数据是:

03/18/2014 15:00:50                32,4
03/18/2014 14:00:48                32,4
03/18/2014 13:00:48               32,42
03/18/2014 12:00:44                32,4
03/18/2014 11:00:42                122,2
03/18/2014 10:00:47                22,4
03/18/2014 09:00:37                53,9
03/18/2014 08:00:35                14,2

sh是:

#!/usr/bin/gnuplot

set title "Plot x^2"
set terminal png
set output "output.png"

set xlabel "X"
set ylabel "Y"
#set datafile sep ','
set xdata time
set timefmt '%m/%d/%Y %H:%M:%S'
plot 'pepe.csv' using 1:2 with lines

它告诉我:

1 个答案:

答案 0 :(得分:3)

@ andyras' set decimalsign ','的建议很有帮助,但如果您在时间格式中有空格,那么它将计为多列。引用文档:

  

timedata中的每组非空白字符在使用n:n规范中计为一列。因此11:11 25/12/76 21.0由三列组成。为避免混淆,如果您的文件包含timedata,gnuplot要求您提供完整的使用规范。

这意味着您需要将using 1:2更改为using 1:3

使用原始数据,此脚本适合我:

#!/usr/bin/gnuplot

set title "Plot x^2"
set terminal png
set output "output.png"

set xlabel "X"
set ylabel "Y"
set decimalsign ','
set timefmt '%m/%d/%Y %H:%M:%S'
set xdata time

plot 'decimal.txt' u 1:3 with lines

输出: image showing correct plot

或者,您可以在数据文件中使用不同的数据分隔符,例如,,时间只计为一列。为此,您需要在行脚本中添加行set datafile sep ','

修改:您可能还想考虑使用pngcairo终端(set term pngcairo),因为它看起来好多了:

plot using pngcairo