x轴上的Gnuplot日期和时间

时间:2014-08-01 08:47:14

标签: time format gnuplot

我想要做的是绘制一个图表,其中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'

所有帮助表示赞赏!感谢

3 个答案:

答案 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)

你得到"月错误"由于第一线。

您的第一行"日期时间价值"与时间格式不匹配。

在我看来,你有两个选择

  1. 删除第一行并手动设置标题,不要更改代码的任何内容

    30/07/2014 00:59:38 0.075
    30/07/2014 00:58:34 0.102
    30/07/2014 00:57:31 0.058`
    
  2. 保留不更改数据文件并修改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会在绘图时将其忽略,但是当您想要记住哪个数据位于哪一列时,您仍然可以看到。