how to stack hist?
148 次查看(过去 30 天)
显示 更早的评论
Does anyone knows how to stack 2 histogram. I have certain area data for 20 years. I am calculating yearly number of events by hist command. And also I have another area data for 20 years. Doing the same, calculating yearly number of events by hist command for the area also. Note for 2 data time the same, 1980-2000 in years.
Now I wanted 2 hist data stack. Is there any way to do it?
Thanks!
4 个评论
Stephen Licata
2020-12-23
编辑:Stephen Licata
2020-12-23
That is a very good and fun example - many thanks!
BTW, if you want a special color, like 'gray' (which does not have a Matlab shortcut symbol code), do this bar command
bar(binrng,counts2,'FaceColor', [0.75 0.75 0.75])
which is equivalent to this version using the RGB integer values:
bar(binrng,counts2,'FaceColor', [192 192 192]/255)
采纳的回答
Star Strider
2016-6-30
The hist function does not offer a 'stacked' option, but you can create the effect easily enough with the histc function and a bar plot.
Experiment with this to get the result you want with your data:
d1 = randi(9, 50, 1); % Create Data
d2 = randi(9, 50, 1); % Create Data
binrng = 1:9; % Create Bin Ranges
counts1 = histc(d1, binrng); % Histogram For ‘d1’
counts2 = histc(d2, binrng); % Histogram For ‘d2’
counts3 = counts1 + counts2; % Histogram Sum ‘d1’+‘d2’
figure(1)
bar(binrng, counts3, 'b')
hold on
bar(binrng, counts1, 'y')
hold off
legend('Data 1', 'Data 2')
The idea is straightforward: create histogram counts for both sets of data, add them, then use the bar plot to first plot the sum, then overplot with one of the others. That will create your stacked histogram plot.
11 个评论
Star Strider
2021-7-15
That’s a bit ambiguous.
Perhaps:
v1 = randi(9,1,50);
v2 = randi(9,1,50);
v3 = randi(9,1,50);
v4 = randi(9,1,50);
v5 = randi(9,1,50);
v6 = randi(9,1,50);
vm = [v1; v2; v3; v4; v5; v6];
binrng = 1:9;
for k = 1:size(vm,1)
counts(k,:) = histc(vm(k,:), binrng);
end
figure
bar(binrng,counts,'stacked')
grid
Experiment, if necessary, to get different results.
.
Joris Bockhofer
2023-7-5
Make sure to use histc!
MatLab recommended using histcounts instead but this will not work because histcounts yields one less value than #bins for whatever reason.
更多回答(0 个)
另请参阅
类别
在 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!