Наложение гауссовой формы на данные, представленные в виде гистограммы - PullRequest
2 голосов
/ 13 мая 2011

знает ли кто-нибудь, как накладывать гауссову кривую на разные ячейки гистограммы? Моя цель - подчеркнуть тенденцию данных. Благодарю. Лусио

Мои данные (в% и сохранены в 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 Ответ

3 голосов
/ 14 мая 2011

Вы бы определили функцию кривой колокола:

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).

...