" x范围无效"使用$时的值

时间:2016-12-10 11:15:07

标签: gnuplot

我在linux上学习gnuplot。我的data.tsv看起来像这样:

1480420804  2016-11-29 04:00:04 -0800   foo1    $123.00 bar1
1480507205  2016-11-30 04:00:05 -0800   foo2    $124.25 bar2
1480593604  2016-12-01 04:00:04 -0800   foo3    $122.75 bar3

我使用第1列(自纪元以来的秒数)作为X,第4列(价格)作为Y.

这是我的gnuplot脚本:

#!/usr/bin/gnuplot

set terminal png notransparent interlace size 640,480
set output "output.png"
set datafile separator tab
set xdata time
set timefmt "%s"
set format x "%4Y-%02m-%02d"
plot "data.tsv" using 1:4 title "Blah"

当我尝试运行此操作时,出现以下错误:

"./test.gp", line 9: warning: Skipping data file with no valid points
plot "data.tsv" using 1:4 title "Blah"
                                      ^
"./test.gp", line 9: x range is invalid

但是,如果我从data.tsv文件的第4列开头删除所有美元符号,那么一切正常。

我的问题:有没有办法让gnuplot接受或跳过" $"在第4栏的价格中

2 个答案:

答案 0 :(得分:1)

(这不是你问题的答案,而是你问题的答案,所以如果有人提出更好的建议,欢迎接受另一个答案)

在绘制之前,只需预处理数据文件,然后删除$

sed s/\$//g data.tsv >data2.tsv

答案 1 :(得分:1)

我尝试做了(或多或少)@kebs建议的内容,但当我在gnuplot中这样调用它时,它失败了同样的“x range is invalid”错误消息:

plot "< sed s/\$//g data.tsv" using 1:4 title "Blah"

我对sed不太熟悉,所以我尝试使用tr,这就像魅力一样。

我的gnuplot脚本的第9行是这样的:

plot "data.tsv" using 1:4 title "Blah"

我改变它说:

plot "< cat data.tsv | tr --delete '$'" using 1:4 title "Blah"