How to visualize two histograms for comparative analysis?

Basically I have two datasets and I want to perform a comparative analysis by showing how many data fall under a specific range. Any idea as how to do it?
Thanks Alex

댓글 수: 3

You can change the transparancy of the bars of the second histogram using the 'FaceAlpha' parameter to create a visible overlay as follows:
hist1 = histogram( ..., 'EdgeColor', 'blue', 'FaceColor', 'blue' );
hold on;
hist2 = histogram( ..., 'EdgeColor', 'green', 'FaceColor', 'green', 'FaceAlpha', 0.2 );
This is not working in following code. I am using it exactly as mentioned above but it shows the second histogram only. Can you help ?
% MATLAB R2019a
% Setup
N = [1:5 10 20 40];
LB = 0;
UB = 3;
n = 10000;
% Generate random variates
X = LB + (UB - LB)*rand(max(N),n);
Sn = cumsum(X);
mu = 1.5;
sigma = .75;
S_1 = mu + sigma.*randn(n, 1)
hist1= histogram(Sn(1,:),'Normalization','pdf','EdgeColor', 'blue', 'FaceColor', 'blue')
hold on
hist2 = histogram(S_1(:), 'EdgeColor', 'green', 'FaceColor', 'green', 'FaceAlpha', 0.2);
Use subplot to put them into different axes.

댓글을 달려면 로그인하십시오.

 채택된 답변

Image Analyst
Image Analyst 2018년 4월 10일

2 개 추천

The histograms will tell you that - how many counts in each range. Use histogram() for visualization, or histcounts() and bar().

댓글 수: 3

Thank you Image Analyst. Indeed, I have two datasets (Nx1). For both the datasets, I want to see the number of counts in a specific range. If I use hold on and plot the histograms, it gets overlapped and it is not easy to visualize the difference.
So, I was wondering if I can introduce some sort of transparency or sort of 3D plot.

Here is an example of using Image Analyst's idea of using both histcounts and bar:

x = randn(2000,1);
y = 0.1 + randn(2000,1);
binRange = -3:0.5:3;
hcx = histcounts(x,[binRange Inf]);
hcy = histcounts(y,[binRange Inf]);
figure
bar(binRange,[hcx;hcy]')
Thanks a lot "the cyclist".

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

the cyclist
the cyclist 2018년 4월 10일
As shown in the documentation for the histogram histogram, you can plot two overlapping histograms on one figure like this
x = randn(2000,1);
y = 1 + randn(5000,1);
h1 = histogram(x);
hold on
h2 = histogram(y);
If you have the Statistics and Machine Learning Toolbox, you can also use the Kolmogorov-Smirnov test to determine whether the CDFs of the two distributions are statistically different.

댓글 수: 4

Thank you cyclist for the answer. Yes, I was using the hold on command. Unfortunately, it is difficult to visualize when I want to check number of counts in a range. So, I wondering if I could introduce any transparency or maybe plot 3D?
Hallo Matlab community
I would like to plot two histograms from two different datasets on the same graph (overlapping and transparent), but each of the histograms containing the respective fit curve.
I tried to use the histfit command on each dataset but was unsuccessful.
I ask for help please
Try histcounts() and bar()
Thank you very much, I will proceed as you advise.
I thank you deeply.
Milagre MANHIQUE

댓글을 달려면 로그인하십시오.

카테고리

도움말 센터File Exchange에서 Data Distribution Plots에 대해 자세히 알아보기

제품

질문:

2018년 4월 10일

댓글:

2022년 1월 28일

Community Treasure Hunt

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

Start Hunting!

Translated by