Чтение легенды gnuplot из csv

у меня есть сведения.CSV-файл, который структурирован следующим образом:

n    John Smith stats     Sam Williams stats
1                23.4                   44.1
2                32.1                   33.5
3                42.0                   42.1

В настоящее время я строю график со следующей командой в gnuplot:

plot 'data.csv' using 1:2 title 'John' with lines, '' using 1:3 title 'Sam' with lines

вопрос в том, как получить имена из первой строки .КШМ, а не вводить их вручную?

кроме того, можно ли сделать его регулируемым в случае добавления столбца в таблицу, чтобы он автоматически добавлял другую строку с соответствующим заголовком?

1 ответов


вы говорите, что у вас есть файл csv, поэтому я предполагаю, что ваш файл данных выглядит так (и сохраняется в infile.csv):

n,John Smith stats,Sam Williams stats
1,23.4,44.1
2,32.1,33.5
3,42.0,42.1

если ваша версия Gnuplot достаточно недавняя, вы можете использовать columnhead как :

echo "
  set datafile separator ','
  plot 'infile.csv' using 1:2 with lines title columnhead
" | gnuplot --persist

или использовать :

echo "
  set datafile separator ','
  set key autotitle columnhead
  plot 'infile.csv' using 1:2 with lines, '' using 1:3 with lines
" | gnuplot --persist

Edit-сокращение заголовков

echo "
  set datafile separator ','
  set key autotitle columnhead
  plot '< sed -r \"1 s/,([^ ]+)[^,]+/,/g\" infile.csv' using 1:2 with lines, '' using 1:3 with lines
" | gnuplot --persist

выход:

Plot of column 1:2 and 1:3 of infile.csv

Примечание ответ для последующей вопрос также может быть актуальным.