Наложение гауссовой формы на данные, представленные в виде гистограммы
Кто-нибудь знает, как наложить гауссову кривую на разные ячейки гистограммы? Моя цель - подчеркнуть тенденцию данных. Благодарю. Lucio
Мои данные (в% и сохранены в hist.dat):
EXP 0-10k 10-25k 25-50k 50-100k 100k
A 51.7 45 3 0.2 0.1
B 2.89 17.1 32 27 21
C 1.35 5.15 7.1 11.4 75
и команды для его построения:
set boxwidth 0.75 absolute
set style fill solid 1.00 border -1
set style data histogram
set style histogram cluster gap 1
set ylabel "Count of structures (%)"
set xlabel "Experimental methods"
plot 'hist.dat' using 2:xtic(1) title col, \
'' using 3:xtic(1) title col, \
'' using 4:xtic(1) title col, \
'' using 5:xtic(1) title col, \
'' using 6:xtic(1) title col
1 ответ
Вы бы определили функцию кривой колокола:
f(x) = (1 / s * sqrt(2 * pi)) * exp(- ((x - m) / s)**2 / 2)
Затем используйте fit
Команда, чтобы подогнать его под ваши точки данных:
fit f(x) 'hist.dat' using 3:1 via m, s
Я думаю, что вам придется перенести файл данных для этого. Я нахожу это более разумным, так как я бы не использовал кластерную гистограмму, а multiplot
:
set multiplot layout 1,3
fit
описывается в главе 57, синтаксис функций и выражений в главе 13, и multiplot
в главе 75.40 руководства gnuplot (версия 4.4).