我想要做的是绘制一个图表,其中x轴取自第一列数据的日期,然后是第二列的时间,并使用两者来创建x轴,
我有一组来自日期记录器的数据,我想在gnuplot上绘图,因为我每天都会获得新数据,只要在每个txt文件上添加就可以轻松添加
文本文件看起来像这样(每个跨度24小时)
日期时间价值
30/07/2014 00:59:38 0.075
30/07/2014 00:58:34 0.102
30/07/2014 00:57:31 0.058
30/07/2014 00:56:31 0.089
30/07/2014 00:55:28 0.119
30/07/2014 00:54:26 0.151
30/07/2014 00:53:22 0.17
30/07/2014 00:52:19 0.171
30/07/2014 00:51:17 0.221
30/07/2014 00:50:17 0
30/07/2014 00:49:13 0
30/07/2014 00:48:11 0
30/07/2014 00:47:09 0
此解决方案mixing date and time on gnuplot xaxis非常适合我,但它非常复杂,我不知道发生了什么,更不用说将它应用于多个文件
这是我尝试过的代码,但是我每月都会收到一个非法的错误?
#!/gnuplot
set timefmt '%d/%m/%Y %H:%M:%S'
set xdata time
set format x '%d/%m/%Y %H:%M:%S'
#DATA FILES
plot '30.07.2014 Soli.txt' using 1:3 title '30/07/2014' with points pt 5 lc rgb 'red',\
'31.07.2014 Soli.txt' using 1:3 title '31/07/2014' with points pt 5 lc rgb 'blue'
所有帮助表示赞赏!感谢
答案 0 :(得分:4)
如果数据文件中出现一些意外数据,则会触发此类错误,例如您的情况下的取消注释和未使用的标题行。
以下file.dat
Date Time Value
30/07/2014 00:59:38 0.075
30/07/2014 00:58:34 0.102
使用最小脚本
给出了这样的错误set xdata time
set timefmt '%d/%m/%Y %H:%M:%S'
plot 'file.dat' using 1:3
要解决错误,请删除第一行(或其间的类似行)。
从版本4.6.6开始,您还可以使用skip
选项跳过数据文件开头的某些行,如:
set xdata time
set timefmt '%d/%m/%Y %H:%M:%S'
plot 'file.dat' using 1:3 skip 1
答案 1 :(得分:0)
你得到"月错误"由于第一线。
您的第一行"日期时间价值"与时间格式不匹配。
在我看来,你有两个选择。
删除第一行并手动设置标题,不要更改代码的任何内容
30/07/2014 00:59:38 0.075
30/07/2014 00:58:34 0.102
30/07/2014 00:57:31 0.058`
保留不更改数据文件并修改gnuplot代码中的标题,设置columnhead
以忽略数据文件中的第一行:
plot '30.07.2014 Soli.txt' using 1:3 title columnhead with points pt 5 lc rgb 'red',\
'31.07.2014 Soli.txt' using 1:3 title columnhead with points pt 5 lc rgb 'blue'`
答案 2 :(得分:0)
我想要注意的是,您可能不必删除不合规的行,例如"日期时间值"标题行---您可以使用hash / pound / octothorp注释掉它:
#Date Time Value
Gnuplot会在绘图时将其忽略,但是当您想要记住哪个数据位于哪一列时,您仍然可以看到。