Using Histogram to create a figure with multiple data sets

41 次查看(过去 30 天)
Hello! I'm new to MATLAB and am learning how to plot data. I have data stored in multiple double arrays. I am trying to plot them all in a histogram, where each bin can store the values in that range from the multiple doubles. My issue that i am having is that the code below overlays multiple histograms over top of each other rather than group them into one histogram. I hope this makes sense. I appreciate any help.
What I have so far is this (after I have imported my data, i'll skip that section)
figure(1);
a = Initial(1).red;
b = Initial(1).green;
c = Initial(2).red;
d = Initial(2).green;
e = Initial(4).red;
f = Initial(4).green;
NumBins = 20;
histogram(a/b,NumBins,'FaceColor','black'); hold on
histogram(c/d,NumBins,'FaceColor','black');
histogram(e/f,NumBins,'FaceColor','black')
ylim([0 20]);
set(gca, 'XScale', 'log');
  4 个评论
Image Analyst
Image Analyst 2021-9-30
Make sure you're using the right division. I think you are not. Run this:
format short g
m1 = rand(4, 9);
m2 = rand(4, 9);
div1 = m1 ./ m2 % Element by element divide
div2 = m1 / m2 % Matrix divide (multiply by invers matrix).
What do you observe?
You should be able to get all in one histogram if they are all the same size like
histogram([a(:), b(:), c(:), d(:), e(:), f(:)]);
Michelle Jackson
Michelle Jackson 2021-9-30
Oh wow okay thank you I see, yes I wasn't using the divide function correctly. I tried out that method but now I'm getting the error "Error using horzcat. Dimensions of arrays being concatenated are not consistent." I should add that the arrays are not the same length (a divided by b is 25x1 double and c divided by d is 29x1 double) is that the issue?

请先登录,再进行评论。

回答(1 个)

the cyclist
the cyclist 2021-9-30
One possibility would be to use histcounts to get the bin counts (instead of histogram to plot the bins directly), and then a stacked or grouped bar chart for the plotting of those counts.
  1 个评论
Michelle Jackson
Michelle Jackson 2021-9-30
Thank you, I guess I could use histcounts and then use the bar function to plot them on top of eachother in each bin. I was just hoping there was an easy fix using histogram!

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Data Distribution Plots 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by