Azzera filtri
Azzera filtri

Plotting gaussian on histograms

3 visualizzazioni (ultimi 30 giorni)
Kash022
Kash022 il 2 Nov 2016
Risposto: Tian Tian il 4 Ago 2017
I have a hist distribution as shown. I now want to plot gaussians on top of this proportional to the number of occurences as shown. I am using the below code snippet to generate the histograms and then trying to plot the gaussians for each. The final output should look like a gaussian mixture which I am not getting. Please help! Thanks!
figure(3); subplot(1,5,1); clear x,y; [x,y] = hist(HW(1,:),[0:4]); stem(y,x); /* HW is a 16x16 matrix */
/**** for plotting gaussians ****/
x=[0:0.25:4];
for kk = 1:16
norm = pdf('Normal',x,HW(1,kk),0.25); /* my mean should be HW(1,kk) with sigma=0.25 */
plot(x,norm);hold on;
end

Risposte (2)

Steven Lord
Steven Lord il 2 Nov 2016
Rather than calling hist, call histogram and tell it to use 'pdf' Normalization.
% Create histogram from sample data A
A = repelem(0:4, [1 4 6 4 1]);
h = histogram(A, 'Normalization', 'pdf');
% Customize Y axis tick location and labels
ax = ancestor(h, 'axes');
ax.YTick = (0:6)./16;
ax.YTickLabel = {'0/16', '1/16', '2/16', '3/16', '4/16', '5/16', '6/16'};
  2 Commenti
Kash022
Kash022 il 3 Nov 2016
It does not plot the gaussian mixture. Simply the histograms have been plotted which I don't need. I just need to see the gaussian pdfs overlapping with one another for given mu and sigma.
Kash022
Kash022 il 3 Nov 2016
I have tried using the normpdf as shown below but do not get any output.
A = repelem(0:4, [1 4 6 4 1]);
for i = 1:size(A,2)
norm(i) = normpdf(A(i),HW(1,i),0.25);
plot(A(i),norm(i));
end

Accedi per commentare.


Tian Tian
Tian Tian il 4 Ago 2017
Hi Kash022,was your problem get solved? I also need to apply Gaussian filter to a histogram plot and find smoothed peaks. Could you please give me some ideas on applying Gaussian filter? Which code did you use? Many thanks. Tian

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by