2016-06-10 2 views
0

Я использую GNUPLOT 4,6 на Linux, с этим кодом:gnuplot: получить неправильный headheader?

set datafile separator "," 
set style data linespoint 
set xdata time;set timefmt "%Y/%m/%d %H:%M";set autoscale 
plot 'PHY_Long_CHA_CMPK.csv' every ::7 using 2:3 title columnheader(3),\ 
    'PHY_Long_CHA_CMPK.csv' every ::7 using 2:4 title columnheader(4),\ 
    'PHY_Long_CHA_CMPK.csv' every ::7 using 2:5 title columnheader(5),\ 
pause -1 

И я не получаю правильный ColumnHeader, (первый, второй, третий), просто filename.csv все время. Может ли кто-нибудь мне помочь? Я не должен изменять данные файла filename.csv. Так что я пытаюсь с функциями GNUPLOT ...

Пример filename.csv:

filename.csv 
Serial number 
From : 2015/12/09 13:15 
To : 2016/06/09 23:30 
sampling rate : 15 

No.,"time","First","Second","Third" 
1,"2015/12/09 13:30",0,0,0 
2,"2015/12/09 13:45",0,0,0 
3,"2015/12/09 14:00",0,0,0 
4,"2015/12/09 14:15",0,0,0 

ответ

2

Потому что теперь, все заголовок столбца «filename.csv» ;-) Вы должны закомментировать комментарий линия ...

#filename.csv 
#Serial number 
#From : 2015/12/09 13:15 
#To : 2016/06/09 23:30 
#sampling rate : 15 
# 
No.,"time","First","Second","Third" 
1,"2015/12/09 13:30",0,0,0 
2,"2015/12/09 13:45",0,0,0 
3,"2015/12/09 14:00",0,0,0 
4,"2015/12/09 14:15",0,0,0 

И не следует использовать ', \' на последнее черчение линии.

+1

+1 Вы били меня, пока я писал свой ответ. Я оставлю это, потому что в OP существует еще одно недоразумение относительно того, как работает «каждый», и потому, что я предлагаю альтернативу «awk», которая работает также, если OP не может редактировать файл (по какой-либо причине). – Miguel

+0

@ Мигель вы правы: я не думал о том, почему OP использует 'every' :) –

2

Ваш заголовок столбца на самом деле filename.csv, потому что это первая строка в вашем файле. every ::7 не делает то, что вы ожидаете от него, то есть пропустите первые 7 строк. Что он делает, так это пропустить первые 7 записей данных. Если вы хотите, чтобы пропустить заголовок, вы можете использовать символы комментария # или трубу на вход удаляющего первые несколько строк с awk:

set datafile separator "," 
set style data linespoint 
set xdata time;set timefmt "%Y/%m/%d %H:%M";set autoscale 
plot "< awk '(NR > 6){print $0}' PHY_Long_CHA_CMPK.csv" using 2:3 title columnheader(3),\ 
    "< awk '(NR > 6){print $0}' PHY_Long_CHA_CMPK.csv" using 2:4 title columnheader(4),\ 
    "< awk '(NR > 6){print $0}' PHY_Long_CHA_CMPK.csv" using 2:5 title columnheader(5) 
pause -1 
+0

Я бы' awk 'NR> 6'' – Bernhard

Смежные вопросы