MATLAB Answers

0

How to find the maximum of a normalized fit of a histogram

Asked by Jillyn Tittle on 30 Oct 2019
Latest activity Answered by Jeff Miller on 7 Nov 2019 at 10:20
I'd like to find, point, and label the maximum of a normalized fit curve on a histogram
The code I'm using to build the histogram/fit curve is:
Average_Insert_Time = mean(All_Data); %Find average of data for random codon to mark on histogram
Histogram = histfit(All_Data,5000,'normal');
hold on
xlim([0 (Average_Insert_Time*2)]);%places average at center of graph
line([Average_Insert_Time, Average_Insert_Time], ylim, 'LineWidth', 2, 'Color', 'g'); %add average vertical
hold off
It produces a figure that looks like this:
I want to place a marker on the maximum value of this normalized distribution, which then denotes the Y-value

  0 Comments

Sign in to comment.

2 Answers

Answer by Dheeraj Singh on 6 Nov 2019 at 9:58

You can use histcountsto find the frequency of each bin.
N=histcounts(All_Data,200);
Then use max to find the max value and the bin index using max:
[val,idx]=max(N);
Then simply use plot to plot the marker:
plot(idx,val,'r*') ;

  1 Comment

This would give me the max of the histogram instead of the max of the normalization curve, no?

Sign in to comment.


Answer by Jeff Miller on 7 Nov 2019 at 10:20

Try this:
dist = Histogram(2)
maxnorm = max(dist.YData);
line([min(dist.XData) max(dist.XData)], [maxnorm maxnorm], 'LineWidth', 2, 'Color', 'g');

  0 Comments

Sign in to comment.