2011-12-16 124 views
4
从文件的多个系列

我已经得到形式的数据文件:绘制使用的Gnuplot

Series_1 "12-Dec-2011 12:00" 32 
Series_1 "12-Dec-2011 12:01" 29 
Series_1 "12-Dec-2011 12:02" 27 
Series_1 "12-Dec-2011 12:04" 23 

Series_2 "12-Dec-2011 12:01" 45 
Series_2 "12-Dec-2011 12:02" 43 
Series_2 "12-Dec-2011 12:04" 38 

其中我想绘制的数量上使用的gnuplot同积系列,但我米新gnuplot,我不知道如何在这里构造using条款。

我想绘制第2列,日期/时间作为X轴,第3列作为Y轴,其后的部分被覆盖。这可能吗?当然X轴并不总是在第一列?

我想:

plot "datafile.dat" using 2:3 title 'Hits' 

但得到的错误:

x range is invalid 

谁能告诉我我要去哪里错了吗?

+0

还看到:HTTP ://stackoverflow.com/questions/12818797/gnuplot-plotting-several-datasets-with-titles-from-one-file – kolypto 2014-08-29 00:00:29

回答

7

为了绘制x轴上的日期/时间序列,您需要set xdata time。接下来,您需要告诉gnuplot日期/时间数据的格式。在你的情况下,

set timefmt "%d-%b-%Y %H:%M" 

应该做的伎俩。一些例子,以及%X - 同义词显示为here

您可能想要设置x轴应显示的格式。在你的情况下,也许

set format x "%H:%M" 

会有道理。

我无法用日期/时间周围的引号绘制数据。有了这些数据文件(Data.csv):

Series_1 12-Dec-2011 12:00 32 
Series_1 12-Dec-2011 12:01 29 
Series_1 12-Dec-2011 12:02 27 
Series_1 12-Dec-2011 12:03 23 

Series_2 12-Dec-2011 12:01 45 
Series_2 12-Dec-2011 12:02 43 
Series_2 12-Dec-2011 12:04 38 

与此脚本:

set xdata time 
set timefmt "%d-%b-%Y %H:%M" 
set format x "%H:%M" 

plot "Data.csv" u 2:4 w l 

你应该得到这个

enter image description here

结果。

+0

谢谢。我将这些引用包括在帮助部分中,它指出:...空白将每个记录分成若干列。但是,在对列进行计数时,双引号内的空格会被忽略,因此以下数据文件行包含三列: 1.0“第二列”3.0 – 2011-12-16 14:26:55

10

扩大@ Woltan的回答是:如果你想在一个不同的颜色/风格各部分,使用index(但你必须通过 emtpy线分离部分):

plot 'i' index 0 using 2:4 with lines, '' index 1 using 2:4 with lines 
+0

+1同样,尽管包含索引^^ – Woltan 2011-12-16 14:30:02