2015-05-24 5 views
2

Согласно полученному ответу на этот вопрос Gnuplot smooth confidence interval lines as opposed to error bars я был в состоянии получить тот же результат для моих данных, предоставленных (ошибка у симметрична, так что у плюс/минус errorY):Gnuplot гладкая доверительный интервал

# x y errorY 
1 3 0.6 
2 5 0.4 
3 4 0.2 
4 3.5 0.3 

Код:

set style fill transparent solid 0.2 noborder 
plot 'data.dat' using 1:($2-$3):($2+$3) with filledcurves title '95% confidence', \ 
    '' using 1:2 with lp lt 1 pt 7 ps 1.5 lw 3 title 'mean value' 

Теперь доверительный интервал задается при подключении каждого у + errorY и у-errorY точку. Я бы хотел, чтобы соединение было не просто прямой, а гладкой линией, например, как можно сгладить точки данных с помощью smooth csplines.

ответ

4

Это немного сложно, поскольку сглаживание работает только на одном столбце, и не могут быть непосредственно объединены с графическим стилем filledcurves.

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

set table 'lower.dat' 
plot 'data.dat' using 1:($2-$3) smooth cspline 
set table 'upper.dat' 
plot 'data.dat' using 1:($2+$3) smooth cspline 
unset table 

А затем комбинируя эти два файла с paste lower.data upper.dat перед построением данных. Если у вас нет программы paste командной строки, вы также можете использовать любой другой сценарий, как paste.py объединить файлы:

set terminal pngcairo 
set output 'data.png' 

set style fill transparent solid 0.2 noborder 
plot '< paste lower.dat upper.dat' using 1:2:5 with filledcurves title '95% confidence', \ 
    'data.dat' using 1:2 with lines lt 1 smooth cspline title 'mean value',\ 
    '' using 1:2 with points lt 1 pt 7 ps 1.5 lw 3 title 'data points' 

enter image description here

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