Как можно в гнуплот нарисовать линию тренда сгладить график?
Есть у меня файл с точками графика. Точки дискретные, хочу сгладить их. Кокой командой это можно сделать?
Ответы (1 шт):
Сделать это можно командой smooth. Вот например, есть у Вас набор точек, пусть это массив, но это не важно, в котором протабулирована какая-то функция (это код для gnuplot 5.2):
array A[25]
do for [i=1:25] { A[i] = sin(i * 3*pi/25.0) }
Если этот массив нарисовать просто командой
plot A title "sin(x)" with lines
Если же мы к выводу добавим еще команду smooth с соответствующим параметром, то получится сглаженная:
plot A title "sin(x)" with lines smooth bezier
У gnuplot есть несколько вариантов сглаживания, о них можно почитать в документации, например так: help smooth. Соответственно, нужно использовать тот способ, который больше подходит для решаемой задачи. Возможно, Вам больше подойдет smooth csplines. Кроме этого, на результат сглаживания влияет такой параметр как samples. По умолчанию он равен 100. Если результат сглаживания не удовлетворяет (остаются углы на кривой), попробуйте сделать этот параметр больше, например set samples 1000.

