6

我有一个表格的数据文件:

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

谁能告诉我哪里出错了?

4

2 回答 2

12

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

plot 'i' index 0 using 2:4 with lines, '' index 1 using 2:4 with lines
于 2011-12-16T13:20:06.423 回答
8

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

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

应该做的伎俩。此处显示了一些示例以及%X- 同义词。

您可能想要设置 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

你应该得到这个

在此处输入图像描述

结果。

于 2011-12-16T12:44:16.770 回答