У меня есть файл данных .csv, созданный другим сторонним приложением, которое должно быть построено с использованием gnuplot
.
Предположим, что файл имеет следующий формат:
1;2;3;4;5;6 <-- This is the header line that should be ignored (with values 1;2;...;N)
1;1;2;1;1;1
2;3;3;3;5;6
3;4;1;1;1;4
Первый столбец - это ось x, каждый из которых должен быть нанесен в виде собственного линейного графика (да, я знаю, слишком много строк в одном графике может показаться плохим, но просто для того, чтобы получить представление). Здесь MCVE:
set terminal png size 1000,500
set datafile separator ";" # CSV file is seperated with ;
plot \
'C://tmp/test.csv' using 1:2 with lines title "A",\
'C://tmp/test.csv' using 1:3 with lines title "B",\
'C://tmp/test.csv' using 1:4 with lines title "C",\
'C://tmp/test.csv' using 1:5 with lines title "D",\
'C://tmp/test.csv' using 1:6 with lines title "E"
Проблема заключается в том, что это также отображает первую строку, поскольку это будут данные.
Я знаю, что, чтобы игнорировать любую строку в файле данных, запустив ее с помощью #
, например #1;2;3;4;5;6
, но я не хочу редактировать файл, потому что он также используется другими инструментами.
Другой способ - использовать plot <filename> every ::1
, чтобы игнорировать первую строку, что означало бы, что я должен был бы включить every ::1
5 раз в приведенный выше script, как объяснено в этой ссылке. Это будет выглядеть следующим образом:
set terminal png size 1000,500
set datafile separator ";" # CSV file is seperated with ;
plot \
'C://tmp/test.csv' every ::1 using 1:2 with lines title "A",\
'C://tmp/test.csv' every ::1 using 1:3 with lines title "B",\
'C://tmp/test.csv' every ::1 using 1:4 with lines title "C",\
'C://tmp/test.csv' every ::1 using 1:5 with lines title "D",\
'C://tmp/test.csv' every ::1 using 1:6 with lines title "E"
Является ли определение every ::1
для каждого сюжета действительно единственным способом? Есть ли более короткий - предпочтительный однострочный - способ игнорировать первую (n) линию (строки); каким-либо образом определить every ::1
"глобально" или что-то вроде (псевдокод) set datafile ignorefirstnlines 1
?