gnuplot“数据文件分隔符”不起作用

时间:2019-07-28 15:22:52

标签: linux gnuplot

我正在尝试绘制两列数据(日期,权重),并且总的来说它是可行的。我的问题是,尽管我希望使用逗号,但我必须用空格分隔列。

数据文件中的示例(2014年7月24日重量为85.73千克):

"2014-07-24 06:02:42",85.73

这是我当前的绘图脚本(插入行号以便于参考)

  1 set grid
  2 set datafile separator ","
  3 set ylabel 'Weight (kg)'
  4 set xdata time
  5 set timefmt '"%Y-%m-%d %H:%M:%S"'
  6 set xrange ['"2014-01-01 00:01"':'"2019-08-01 00:01"']
  7 set style data lines
  8 plot "weight" using 1:2

我可以将第2行中的分隔符设置为我喜欢的任何值,但它不起作用。尽管gnuplot更改了分隔符(gnuplot> how datafile separator报告datafile fields separated by any of 1 characters ","),我将得到以下错误

$ gnuplot weight.plot 
"weight.plot", line 8: warning: Skipping data file with no valid points

plot "weight" using 1:2
                       ^
"weight.plot", line 8: all points y value undefined!

我在Linux Mint上使用gnuplot 5.2 patchlevel 2

有什么想法我做错了吗?

1 个答案:

答案 0 :(得分:0)

当gnuplot从cvs文件中读取时,它将去除可能多余地界定每个字段的所有双引号。我记得这样做是为了与MSExcel保持一致,MSExcel不能区分123和“ 123”。因此,当程序尝试应用timefmt时,引号已被删除,并且格式不匹配。如果您只需从set timefmtset xrange中删除多余的双引号,它将起作用:

set grid
set datafile separator ","
set ylabel 'Weight (kg)'
set xdata time
set timefmt "%Y-%m-%d %H:%M:%S"
set xrange ["2014-01-01 00:01":"2019-08-01 00:01"]
set style data lines
set table   # for debugging
plot "weight" using 1:2

   # Curve 0 of 1, 1 points
   # Curve title: ""weight" using 1:2"
   # x y type
   "2014-07-24 06:02:42"  85.73  i