Хотя прямого решения этой проблемы нет, возможен обходной путь. Я проиллюстрирую это с помощью python / numpy. Во-первых, часть скрипта gnuplot, которая генерирует соответствие и соединяется со скриптом Python:
file = "my_data.tsv"
f(x)=a+b*(x)
fit f(x) file using 2:3 via a,b
r = system(sprintf("python correlation.py %s",file))
ti = sprintf("y = %.2f + %.2fx (r = %s)", a, b, r)
plot \
file using 2:3 notitle,\
f(x) title ti
Это запускает correlation.py для получения корреляции 'r' в строковом формате. Он использует 'r' для создания заголовка подходящей линии. Затем correlation.py:
from numpy import genfromtxt
from numpy import corrcoef
import sys
data = genfromtxt(sys.argv[1], delimiter='\t')
r = corrcoef(data[1:,1],data[1:,2])[0,1]
print("%.3f" % r).lstrip('0')
Здесь предполагается, что первая строка является строкой заголовка. Кроме того, столбцы, для которых требуется вычислить корреляцию, теперь жестко запрограммированы на nr. 1 и 2. Конечно, обе настройки можно изменить и превратить в аргументы.
В результате получается заголовок подходящей строки (для личного примера):
y = 2.15 + 1.58x (r = .592)
person
Frans
schedule
23.03.2013