gnuplot X轴上有时间的多行

时间:2013-08-08 04:57:29

标签: gnuplot

我已经看过问题,但仍然无法实现这一点。

我的数据集是这样的:

[date] , [%cpu] , [mem]
23:00:39 , 21.9 , 2.1
23:00:44 , 21.8 , 2.1
23:00:49 , 21.8 , 2.1
23:00:54 , 21.8 , 2.1
23:00:59 , 21.7 , 2.1

我的Gnuplot语句(刚开始使用此数据)是:

set timefmt "%H:%m:%s"
set xdata time
set datafile sep ','
plot '/tmp/info' using 2 title 'cpu' with lines, '/tmp/info' using 3 title 'memory%' with lines

我收到以下错误:

    Need full using spec for x time data

我尝试过自动缩放x,但我有点迷失了,任何帮助都会受到赞赏。

3 个答案:

答案 0 :(得分:5)

时间数据要求您始终指定要使用的所有列。 (另请注意更正的timefmt):

set timefmt "%H:%M:%S"
set xdata time
set datafile sep ','
set style data lines
plot '/tmp/info' using 1:2 title 'cpu', '' using 1:3 title 'memory%'

原因是timefmt也可能包含空格,因此用于时间轴的数据可能来自两列。请考虑以下修改后的数据文件:

23:00:39 06/08/13 21.9 2.1
23:00:44 06/08/13 21.8 2.1
23:00:49 06/08/13 21.8 2.1
23:00:54 06/08/13 21.8 2.1
23:00:59 06/08/13 21.7 2.1

此格式的绘图命令为:

set timefmt "%H:%M:%S %d/%m/%Y"
set xdata time 
set format x "%H:%M:%S"
set style data lines
plot 'mydata.dat' using 1:3 t 'cpu', '' using 1:4 t 'memory%'

为避免混淆,始终要求对于时间数据,绘图样式(此处为with lines)使用的所有列都使用using语句明确给出。

答案 1 :(得分:2)

你的情节命令看起来像这样:

plot '/tmp/info' using 1:2 title 'cpu' with lines, '/tmp/info' using 1:3 title 'memory%' with lines

答案 2 :(得分:1)

我在gnuplot上遇到了类似的问题,其中有一个数据文件,例如:

05:07:00    0.0769  0.0769  0.0000  0.0000  0.0000  0.0000  0.0000
05:08:00    0.2308  0.2308  0.0000  0.0000  0.0000  0.0000  0.0000

我正在尝试使用,但是却无法正常工作

set xdata time
set timefmt "HH:MM:SS";
plot "wed" using 0:2 t 'wtf" w lines

此修复程序有两件事,主要是在timefmt字符串中使用%,而仅使用一个字母。还将输出的设置格式x用作键(并将第一列用作1-尽管我之前也尝试过使用该键)。

这是最适合我的最小输出脚本:

set xdata time
set timefmt "%H:%M:%S"
set format x "%H:%M"
plot "wed" using 1:2 t 'my title' w lines