How to draw a bar graph from cell array with different size length?
Mostra commenti meno recenti
For example, i have a = [{1}; {[3 5]}; {[4 6 7]}; {[3 6 7 9]}]. How do I plot the cell array in one bar graph?
4 Commenti
Walter Roberson
il 16 Gen 2012
What would you like the resulting graph to look like?
Chin
il 16 Gen 2012
C.J. Harris
il 16 Gen 2012
How would you link the data you have provided to the legend (as shown in your example figure)? In the example groups 3 & 5 have only two bars, but it is clearly item 003 which is missing.
The data you have provided doesn't make it clear which elements are missing from each group - and therefore you run the risk of having very misleading bar colours.
Chin
il 16 Gen 2012
Risposta accettata
Più risposte (2)
C.J. Harris
il 16 Gen 2012
If you are going to pad out your arrays with zeros you don't even need to define it as a cell array, just use a matrix.
Try this:
a = [1 0 0 0; 3 5 0 0; 4 6 7 0; 3 6 7 9];
bar(a,'group')
1 Commento
Chin
il 16 Gen 2012
Walter Roberson
il 16 Gen 2012
L = max(cellfun(@length, a));
bar( cell2mat( @(V) [V, zeros(1,L-length(V))], a, 'Uniform', 0), 'group' )
3 Commenti
Chin
il 16 Gen 2012
Walter Roberson
il 16 Gen 2012
bar( cell2mat( cellfun(@(V) [V, zeros(1,L-length(V))], a, 'Uniform', 0)), 'group' )
Chin
il 16 Gen 2012
Categorie
Scopri di più su 2-D and 3-D Plots in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!