How to get multiple groups plotted with histogram?
45 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Diemo Schwarz
el 7 de Jun. de 2016
Editada: the cyclist
el 7 de Jun. de 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))
How to get this behaviour with the new histogram function that is supposed to supercede hist?
histogram(rand(20,4))
Respuesta aceptada
the cyclist
el 7 de Jun. de 2016
Editada: the cyclist
el 7 de Jun. de 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]')
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 comentarios
Más respuestas (1)
Image Analyst
el 7 de Jun. de 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 comentarios
Ver también
Categorías
Más información sobre Data Distribution Plots en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!