我在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栏的价格中
答案 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"