Как установить метку оси с заголовком столбца в gnuplot?

Мой вопрос очень прост. Предположим, у меня есть файл данных с заголовками столбцов, как показано ниже

first second
1 1 
2 1
3 6
4 9

В gnuplot, как мне сделать так, чтобы файл данных строился с использованием заголовка столбца в качестве метки оси? например, позвонив

plot datafile using 1:2

я получил маркировку ксаксис first и яксис помечены second?

редактировать: я знаю, что я могу использовать заголовок столбца в качестве ключевой записи через set key auto title column headОднако это не совсем то, что я ищу.

4 ответа

Чтобы разработать предложение @andyras, вот как вы можете это сделать:

datafile = 'filename.txt'
firstrow = system('head -1 '.datafile)
set xlabel word(firstrow, 1)
set ylabel word(firstrow, 2)
plot datafile using 1:2

Вы должны построить с явным using заявление, в противном случае гнуплот будет жаловаться на bad data on line 1,

Я не думаю, что эта функция встроена в gnuplot; вам, вероятно, придется использовать утилиту, похожую на awk, чтобы извлечь эти метки из файла данных.

Вы можете попробовать отправить запрос на функцию на сайте sourceforge gnuplot и получить обратную связь от разработчиков.

Еще один вопрос, когда люди считают, что это невозможно сделать с помощью gnuplot. Вот простое решение только для gnuplot без внешних инструментов, следовательно, независимое от платформы.

Данные: SO16089301.dat

      first second
1 1 
2 1
3 6
4 9

Скрипт: (работает с gnuplot 4.6.0, март 2012 г.)

      ### extracting axes labels from datafile
reset

FILE = 'SO16089301.dat'

stats FILE u (myX=strcol(1), myY=strcol(2)) every ::0::0 nooutput

set xlabel myX
set ylabel myY

plot FILE u 1:2 w lp pt 7 lc rgb "red"
### end of script

Результат:

Я думаю, что это поддерживается. Вы просто должны иметь возможность использовать "":

заговор 'файл', используя "первый":"второй"

Хотя, если вы хотите заняться математикой в ​​своей спецификации использования, вам также понадобится функция столбца ("")

построение файла с использованием "first":(column ("second") - (column ("thrid"))

(Использование математических заголовков только в кавычках не помогло мне.)

Другие вопросы по тегам