В последнее время у меня возникают проблемы с двумя простыми графиками.
Я пытаюсь построить несколько функций (полагаю, что синтаксис для этого может быть намного проще), где каждая из них подходиттолько к одной строке данных.
Файл данных:
11[V] 2.92 4.64 0.04 0.04 0.031[mA]
9[V] 3.32 4.72 0.04 0.04 0.025[mA]
8[V] 3.52 4.76 0.04 0.04 0.022[mA]
7[V] 3.72 4.80 0.04 0.04 0.019[mA]
6[V] 3.92 4.88 0.04 0.04 0.016[mA]
4[V] 4.32 4.92 0.04 0.04 0.010[mA]
Команды Gnuplot:
set terminal epscairo color enhanced
set encoding utf8
set xrange[2.8:4.6]
set key left top
set grid
set xlabel 'Napięcie na złączu kolektor-emiter [V]'
set ylabel 'Prąd płynący przez złącze kolektor-emiter [mA]'
set output "dat1_2.eps"
f1(x)=a1*tanh(x)
fit f1(x) "dat1_2.dat" every ::::1 u 2:(($3-0.65)/0.25) via a1
f2(x)=a2*tanh(x)
fit f2(x) "dat1_2.dat" every ::1::2 u 2:(($3-0.65)/0.25) via a2
f3(x)=a3*tanh(x)
fit f3(x) "dat1_2.dat" every ::2::3 u 2:(($3-0.65)/0.25) via a3
f4(x)=a4*tanh(x)
fit f4(x) "dat1_2.dat" every ::3::4 u 2:(($3-0.65)/0.25) via a4
f5(x)=a5*tanh(x)
fit f5(x) "dat1_2.dat" every ::4::5 u 2:(($3-0.65)/0.25) via a5
f6(x)=a6*tanh(x)
fit f6(x) "dat1_2.dat" every ::5 u 2:(($3-0.65)/0.25) via a6
#there is a long plotting line below
plot "dat1_2.dat" using 2:(($3-0.65)/0.25):4:($5/0.25) with xyerrorbar title "Zależność zmierzona", "dat1_2.dat" u ($2+0.07):(($3-0.65)/0.25-0.05):6 with labels notitle font 'Verdana,7.5', f1(x) notitle lt rgb "blue", f2(x) notitle lt rgb "blue", f3(x) notitle lt rgb "blue", f4(x) notitle lt rgb "blue", f5(x) notitle lt rgb "blue", f6(x) notitle lt rgb "blue"
Результат:
[...]
variance of residuals (reduced chisquare) = WSSR/ndf : 0.0116479
Final set of parameters Asymptotic Standard Error
======================= ==========================
a5 = 17.0097 +/- 0.07636 (0.4489%)
Read 1 points
line 0: No data to fit
line 0: undefined variable: a6
Я очень мало представляю, как заставить gnuplot использовать последнюю (первую?) Строку.Простой трюк с удвоением последней строки файла данных дает ожидаемый результат, но он слишком неприятен для меня, и я хотел бы понять, что здесь происходит.
Второй вопрос: как заставить gnuplot соответствовать функциипройти через определенную точку.Позвольте мне показать, что я имею в виду:
https://i.imgur.com/WtLSpj4.png
Как видите, подогнанные функции не проходят через вычисленные значения (пренебрегая ошибочными панелями).Это довольно удивительно для меня, так как, имея только одну точку, я ожидал, что gnuplot сделает то, что я упомянул.Какая команда будет соответствовать f функциям таким желаемым образом?