How to get multiple groups plotted with histogram?
135 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Diemo Schwarz
am 7 Jun. 2016
Bearbeitet: the cyclist
am 7 Jun. 2016
With hist, the columns of an input matrix would be interpreted as different data sets and the frequency bars grouped per bin:
hist(rand(20,4))
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/165887/image.png)
How to get this behaviour with the new histogram function that is supposed to supercede hist?
histogram(rand(20,4))
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/165888/image.png)
1 Kommentar
Akzeptierte Antwort
the cyclist
am 7 Jun. 2016
Bearbeitet: the cyclist
am 7 Jun. 2016
As I suggested in this answer, I think the best you can do is to get the bin counts using the histcounts command, and then use the bar command to plot:
Here is an example.
rng 'default'
data1 = randn(20,1); data2 = randn(30,1); data3 = randn(40,1); data4 = randn(50,1);
edges = -4:1:4;
h1 = histcounts(data1,edges); h2 = histcounts(data2,edges); h3 = histcounts(data3,edges); h4 = histcounts(data4,edges);
figure bar(edges(1:end-1),[h1; h2; h3; h4]')
![](/matlabcentral/answers/uploaded_files/53754/test.png)
Just as an FYI, I do think there is good reason to avoid the side-by-side histogram, which is that the bins do not line up where the actual data are, so it can be misleading. I speculate that this is why MathWorks eliminated this option.
0 Kommentare
Weitere Antworten (1)
Image Analyst
am 7 Jun. 2016
It doesn't look like histogram() or histcounts() processes matrices in columns anymore. So you'd have to do the overlapping bars like in the help, rather than the side-by-side bars.
0 Kommentare
Siehe auch
Kategorien
Mehr zu Data Distribution Plots finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!