2014-12-03 2 views
1

Я хотел бы построить некоторые данные из моего набора данных, который выглядит как:GNUPLOT: данные Plot, если некоторое условие

29/11/2014;23:52;983,0;67,8;1016,0;53,0;53,0;29,7 
29/11/2014;23:53;269,0;67,8;1018,0;53,0;53,0;29,7 
29/11/2014;23:54;266,0;67,8;1008,0;53,0;53,0;29,7 
29/11/2014;23:55;59,0;67,8;1011,0;53,0;53,0;29,7 
29/11/2014;23:56;37,0;67,8;1016,0;53,0;53,0;29,7 
29/11/2014;23:57;457,0;67,8;1000,0;51,9;53,0;29,6 
29/11/2014;23:58;570,0;67,8;1000,0;53,0;53,0;29,6 
29/11/2014;23:59;1140,0;67,8;1001,0;53,0;52,5;29,6 
30/11/2014;00:00;1040,0;67,8;1005,0;52,5;53,0;29,6 
30/11/2014;00:01;443,0;67,8;1000,0;53,0;53,0;29,6 
30/11/2014;00:02;229,0;67,8;1008,0;52,5;53,0;29,6 
30/11/2014;00:03;1035,0;67,8;1001,0;53,0;52,5;29,5 
30/11/2014;00:04;681,0;67,8;1000,0;51,9;51,9;29,5 
30/11/2014;00:05;931,0;67,8;1008,0;52,5;53,0;29,5 
30/11/2014;00:06;889,0;67,8;1010,0;53,0;51,9;29,5 
30/11/2014;00:07;885,0;67,8;1000,0;51,9;51,9;29,4 

Сепаратор поля является точки с запятой и десятичный разделителем является запятой, поля даты и время считаются независимыми друг от друга (они отделены друг от друга ; символ)

Этот набор данных охватывает целый месяц, но мне нужно только построить данные, соответствующие сегодня, по какой-то причине, команда сюжет всегда игнорировать данные, так что я подозреваю, что команду:

"plot file1 using (stringcolumn(1) == date1 ? $2:1/0):6 title " GPU" with lines, " 

является уродливы , но после прочтения многих сетевых статей, я не могу догадаться, как это сделать.

Остальная часть графика в этой строке " file1 using 2:7 title " CPU" with lines" работает как ожидалось.

+0

кроме того: вместо '1/0' вы можете написать' NaN', который является более читаемым – kxr

+0

Спасибо за ваш комментарий @krx –

ответ

1

Когда вы вычисляете выражение внутри оператора using, вы должны использовать timecolumn, чтобы получить правильные данные о времени. Кроме того, для сравнения строк используйте eq оператор:

set xdata time 
set timefmt '%H:%M' 
set datafile separator ';' 
set decimalsign locale 
date1='30/11/2014' 

plot 'test.dat' using (strcol(1) == date1 ? timecolumn(2) : 1/0):6 with lines title "GPU" 

enter image description here

+0

Спасибо вы очень много, это решение работало прямо из коробки. –