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
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(:)]);
回答(1 个)
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.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Data Distribution Plots 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!