столбец с пустыми точками данных

date  daily  weekly  monthly
1      11             88
2      12
3      45    44
4      54
5      45
6      45    66
7      77
8      78
9      71    99       88

Для пустых точек данных в недельном столбце график отображает значения из месячного столбца. Месячный график столбца и график ежедневного столбца идеальны. предложить что-то большее, чем установить отсутствующий файл данных '' и установить разделитель файлов данных "\ t"


person deepak.yadav    schedule 01.05.2013    source источник


Ответы (2)


Увы, Gnuplot не поддерживает файлы данных на основе полей, единственное текущее решение - это предварительно обработать файл. awk хорошо подходит для этой задачи (обратите внимание, если файл содержит жесткие вкладки, которые необходимо настроить FIELDWIDTHS):

awk '$3 ~ /^ *$/ { $3 = "?" } $4 ~ /^ *$/ { $4 = "?" } 1' FIELDWIDTHS='6 7 8 7' infile > outfile

Это заменяет пустые поля (/^ *$/) в столбцах 3 и 4 вопросительными знаками, что означает неопределенность для Gnuplot. 1 в конце сценария awk вызывает правило по умолчанию: { print $0 }.

Если вы отправите вывод awk в outfile, вы можете, например, теперь построить файл следующим образом:

set key autotitle columnhead out 
set style data linespoint 
plot 'outfile' using 1:2, '' using 1:3, '' using 1:4

График всех столбцов

person Thor    schedule 01.05.2013
comment
Хороший ответ Я не знал, что вы можете использовать заголовок столбца файла для создания заголовков автоматических меток - person psibar; 01.05.2013
comment
Если мне нужно построить только еженедельный столбец с датой, можете ли вы предложить какое-либо решение в файле сценария gnuplot. - person deepak.yadav; 02.05.2013
comment
@ deepak.yadav: Используйте тот же ответ, измените сюжетную линию на: plot 'outfile' using 1:3. - person Thor; 02.05.2013

Если кто-то столкнется с этим, я рекомендую обновиться как минимум до версии Gnuplot 4.6.5.

Это связано с тем, что в обновлении Gnuplot 4.6.4: * CHANGE обрабатывает пустые поля в файле CSV как «отсутствующие», а не «плохие»

И, похоже, в 4.6.5 есть (связанная?) Ошибка: * FIX пустое первое поле в файле значений, разделенных табуляцией, было неправильно проигнорировано

person Urmas    schedule 09.04.2014
comment
Хороший улов. Я могу подтвердить, что, начиная с версии 4.6.4, следующие команды отлично работают с заданным набором данных (разделенные табуляцией!): set datafile separator '\t'; set style data lines; plot 'data.csv' u 1:2, '' u 1:3, '' u 1:4. - person Christoph; 09.04.2014