我正在尝试绘制两列数据(日期,权重),并且总的来说它是可行的。我的问题是,尽管我希望使用逗号,但我必须用空格分隔列。
数据文件中的示例(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
有什么想法我做错了吗?
答案 0 :(得分:0)
当gnuplot从cvs文件中读取时,它将去除可能多余地界定每个字段的所有双引号。我记得这样做是为了与MSExcel保持一致,MSExcel不能区分123和“ 123”。因此,当程序尝试应用timefmt
时,引号已被删除,并且格式不匹配。如果您只需从set timefmt
和set 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