2015-01-12 1 views
1

У меня есть формат файла, как это:Gnuplot генерации ключей Probleme

2014/3/12 18:02:36 1 SSID1 
2014/3/12 18:02:37 1 SSID1 
2014/3/12 18:02:38 2 SSID2 
2014/3/12 18:02:39 1 SSID1 
2014/3/12 18:02:39 3 SSID3 
2014/3/12 18:02:39 3 SSID3 
2014/3/12 18:02:39 2 SSID2 

я создаю скрипт GNUPLOT для построения графика с календарным схемы -> дата в X и часов в Y с точками для каждой связи в качестве идентификатора SSID). Я использую переменную lc для генерации другого цвета из столбца (3).

Но я не могу иметь правильную легенду (ключ). С моим кодом у меня просто есть поле с первым SSID в столбце (4) с правильным цветом ... но как я могу иметь все SSID в этом поле со всем переменным цветом?

Если кто-то может помочь, спасибо!

Имейте славный день!

ответ

1

С title columnheader(4) вы выбираете четвертый столбец первой строки как ключевое слово для всего участка. Чтобы получить правильный заголовок, а также правильные цвета линии в ключе (см, например, Different color per dataset относительно основных цветов с linecolor variable) все возможное, чтобы создать список, содержащий все уникальные идентификаторы SSID, а затем перебрать их:

file = 'data2.dat' 
SSIDs = system(sprintf('awk ''{print $4}'' %s | sort | uniq', file)) 

set xdata time 
set ydata time 

set timefmt x "%Y/%m/%d" 
set timefmt y "%H:%M:%S" 

day = 360*24 
set xtics 70*day 

set format y "%H" 
set format x "%B %d" 

set style data points 

plot for [s=1:words(SSIDs)] file using (strcol(4) eq word(SSIDs, s) ? timecolumn(1) : 1/0):2:3 lc s pt 7 ps 1 t word(SSIDs, s) 

Примечание, что используя этот 1/0 трюк работает отлично при печати with points. Если по какой-то причине вы хотите построить линии, вы должны выполнить фильтрацию, используя, например, grep:

cmd(s, f) = sprintf('< grep ''%s'' %s', s, f) 
plot for [s=1:words(SSIDs)] cmd(s, file) using 1:2:3 lc s pt 7 ps 1 t word(SSIDs, s) 
+0

Thx для ответа. Он работает почти ... С трюком 1/0 у меня есть такая проблема: Предупреждение: пустая область x [2014: 2014], настройка на [1993.86: 2034.14] ... Я пробовал некоторые изменения, но не смог, но я может видеть, что метка и цвет правильно назначены, только ось x не работает хорошо ... – user1568445

+0

Это может произойти, если у вас есть автомасштабированный xrange, но только одна дата в вашем файле. – Christoph

+0

Хорошо. У меня было больше даты в моем файле и добавить некоторый диапазон для x и y: set xrange ["2014/3/12": "2014/9/12"] set yrange ["00:00:00": "23 : 59: 59 "] Теперь нет ошибки во время работы, у меня есть .png с хорошим диапазоном, хороший ключ, но нет смысла ... – user1568445