Как установить метку оси с заголовком столбца в 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"))
(Использование математических заголовков только в кавычках не помогло мне.)