How to find probability density for two data sets plotted on same histogram?

I want to plot two data sets on one histogram. Also, I want to show probability density at y-axis. I am using this code,
BinEdges = [0:0.25:16.5]; histogram(data1,'Normalization','probability','BinEdges',edges1,'FaceColor','b','FaceAlpha',0.7)
hold on
histogram(data2,'Normalization','probability','BinEdges',edges1,'FaceColor','r','FaceAlpha',0.7)
The problem is that this code is normalizing both plots individually. Is there a way to plot these two datasets with same probability density scale and also in different colors. I have attached data.

 Accepted Answer

Two ideas come to mind...
1. You can combine the data sets into one so that the normalization takes into account the total number of elements. But the tradeoff is that the data is plotted as a single histogram.
edges1 = [0:0.25:16.5];
histogram([data1;data2],'Normalization','probability','BinEdges',edges1,'FaceColor','b','FaceAlpha',0.7)
2. You can manually compute the bin counts and normalize over both data sets, then feed the bins to histogram. This allows you to keep separate histograms with different colors, but histogram just does the plotting and you need to do the calculations.
edges1 = [0:0.25:16.5];
counts1 = ...
counts2 = ...
histogram('BinEdges',edges1,'BinCounts',counts1,'FaceColor','b','FaceAlpha',0.7)
hold on
histogram('BinEdges',edges1,'BinCounts',counts2,'FaceColor','r','FaceAlpha',0.7)

1 Comment

Than you for your answer. I can not use option one since I have to plot them in different colors. I'll try second option.

Sign in to comment.

More Answers (0)

Tags

Community Treasure Hunt

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

Start Hunting!