Code covered by the BSD License

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

### Highlights from Normalized histogram

4.3125
4.3 | 18 ratings Rate this file 20 Downloads (last 30 days) File Size: 1.66 KB File ID: #22802 Version: 1.1

# Normalized histogram

### Arturo Serrano (view profile)

28 Jan 2009 (Updated )

Same as histogram, but the area sum is 1.

File Information
Description

HISTNORM Histogram normalized
[...] = HISTNORM(...) works like HIST, but the frequency is normalized so that area sum is 1.

Bonus usage!
[...] = HISTNORM(..., 'plot') plots and returns the output arguments. Be sure 'plot' is the last argument.

Example:
data = randn(1)+randn(1)*randn (10000, 1);
[xo,no] = histnorm(data, 101, 'plot');
hold on
plot (no, normpdf(no, mean(data), std(data)), 'r');
hold off

MATLAB release MATLAB 7.7 (R2008b)
Tags for This File   Please login to tag files.
Comments and Ratings (28)
08 Jun 2016 RAM KUMAR J

### RAM KUMAR J (view profile)

07 Apr 2016 Ruben

### Ruben (view profile)

To work with data values lower than 1 replace 'xonorm' (line 33) var by:
xonorm = xo/sum (xo);

Note: function valid to normalize data in a vector, it is NOT valid for data in matrix format with more than one distribution to be represented.
To do multi-distributions normalization it is required further adjustments.

15 Mar 2016 Mbvalentin

### Mbvalentin (view profile)

It doesn't seem to work for values of data lower than 1. (mu < 1).

Comment only
16 Feb 2016 Andoni Medina

### Andoni Medina (view profile)

Sorry just found out the answer! many thanks!!

16 Feb 2016 Andoni Medina

### Andoni Medina (view profile)

Very nice! How can we add the distribution fitting? (as shown on the image) thanks!

09 Apr 2015 Thangarajah Akilan

22 Nov 2014 ?

10 Jul 2013 R

### R (view profile)

it work fantastic:)how could we use histnorm to calculate normalized histogram for hsv histogram

Comment only
10 Jul 2013 R

10 Jul 2013 R

### R (view profile)

26 Apr 2013 Damien

### Damien (view profile)

thanks!!!

25 Mar 2013 arnold

### arnold (view profile)

nice one, thanks!

22 Mar 2013 Arturo Serrano

### Arturo Serrano (view profile)

The *area* must sum up to 1.
Thanks for rating!

Comment only
21 Mar 2013 Linpeng

### Linpeng (view profile)

The columns sum up to 10 instead of 1. Any ideas?

13 Mar 2013 Arturo Serrano

### Arturo Serrano (view profile)

*Why* is not working? I don't see any problems. Maybe if you give some clues, we can help.

Comment only
12 Mar 2013 Bernoulli Lizard

### Bernoulli Lizard (view profile)

This does not work. The height of my bins is on the order of 10^4. What is wrong?

Comment only
22 Jun 2012 ww

### ww (view profile)

Fantastic :)

04 Sep 2011 Flavio Prattico

Great!!!

18 Aug 2011 Bob

### Bob (view profile)

disregard above comment about the mean...

Comment only
18 Aug 2011 Bob

### Bob (view profile)

Doesn't seem to work with non-zero mean data sets. I found that the code below works better. It can not handle the case where you specify your own bin widths. But it can handle a matrix of data.
e.g.: histnorm([randn(1e3,1) randn(1e3,1)+8],50)

function varargout = histnorm(varargin)

len = size(varargin{1});
n = len(2);
[xo,no] = hist (varargin{:});
binwidths = diff(no);
xonorm = xo/sum (xo .* (binwidths(1)*ones(size(xo))))*n;
bar(no,xonorm);

13 Oct 2010 Anne Calder

### Anne Calder (view profile)

Thank you! Works perfect!

Comment only
04 Oct 2010 Arturo Serrano

### Arturo Serrano (view profile)

Hi Anne,
you can change the colors by setting properties from the matlab command window. This should does the trick:

>> set (findobj (gca, 'type', 'patch'), 'edgecolor', [0.5 0.5 0.5], 'facecolor', [0.1 0.1 0.1]);

Edgecolor and facecolor values are the RGB values for bin colors (you can use letters also as plot does).

Comment only
03 Oct 2010 Anne Calder

### Anne Calder (view profile)

Super useful... was wondering if you can change the colors in the bins. This isn't working for me.

17 Jun 2010 Gustavo

### Gustavo (view profile)

05 Mar 2010 Shahzad Bhatti

### Shahzad Bhatti (view profile)

It didn't work for me. It is giving same histogram as does hist ... I mean it is not normlizing !!!

@ Author - Any idea - what i am doing wrong ?

Comment only
25 Feb 2010 Ian Baldwin

### Ian Baldwin (view profile)

very useful

Comment only
16 Nov 2009 abdelhamid alhassi

### abdelhamid alhassi (view profile)

20 Feb 2009 Darcy Sabatino

### Darcy Sabatino (view profile)

Very helpful. The histnorm() function is virtually as easy as the hist() function.