Наложение гауссовой формы на данные, представленные в виде гистограммы

Кто-нибудь знает, как наложить гауссову кривую на разные ячейки гистограммы? Моя цель - подчеркнуть тенденцию данных. Благодарю. 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).

Другие вопросы по тегам