我有一个以下形式的数据文件:
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 :(得分: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
你应该得到这个
结果。