2016-02-03 3 views
1

Я делаю тяжелый заговор на gnuplot, но я довольно новичок в этом, надеюсь, вы, ребята, можете мне посоветовать. Моя проблема заключается в следующем:
Я хочу построить несколько кривых на одном графике, и я хочу, чтобы мой .gp-скрипт умело давал названия этим кривым. Каждая кривая представляет собой акустический спектр камертона, который возбуждался на определенной частоте. В моем скрипте вводится вектор u (n), который содержит значения указанных частот, а титр (n) - название номера кривой n. Действительно, это не работает, и я предполагаю, что это из-за плохого формирования в титре (n).Gnuplot titling - Использование переменных в заголовке с использованием sprintf

u(n)=(865, 860, 855, 850, 441, 439, 437, 435, 433, 431, 429, 427, 425, 423, 421) 
titre(n) = sprintf("Excitation à %d Hz", u(n)) 
plot for [n=2:15] 'batt.res' u 1:n w l lw 1 lc palette frac n/15.0 title titre(n) 

Вместо того, что я хочу, все заголовки «Возбуждение 421 Гц». Частота застряла на 421 Гц для каждой кривой. Как я могу это исправить?

Все оцененная помощь :)

ответ

0

Gnuplot не имеет структуру массива или списка данных, пока. Таким образом, для такого рода итераций вы должны использовать строку, которая содержит метки, разделенные пробелами:

u = "865 860 855 850 441 439 437 435 433 431 429 427 425 423 421" 
titre(n) = sprintf("Excitation à %s Hz", word(u, n)) 
plot for [n=1:15] 'batt.res' u 1:n+1 w l lw 1 lc palette frac n/15.0 title titre(n) 
+0

Приятно, что это работает! – Portecochon

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