使用Gnuplot从文件中绘制多个系列

时间:2011-12-16 12:17:57

标签: gnuplot series

我有一个以下形式的数据文件:

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

有人能告诉我哪里出错了吗?

2 个答案:

答案 0 :(得分:10)

扩展@ Woltan的答案:如果您希望每个部分采用不同的颜色/样式,请使用index(但是您必须通过两个 emtpy行分隔部分):

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

答案 1 :(得分: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

结果。