Grouped bar chart with single data point per group
Mostra commenti meno recenti
Hi,
I have a script with takes a data structure as an input, and depending on various properties set by the user produces graphs as appropriate.
In some cases data is plotted as a grouped bar chart, so we have multiple 'series' (in excel-speak).
Problem is that when we go to a single x value (one row of data), matlab decides to plot this as if there were one 'series' with n x-values, apposed to n-series with one x-value (which is what I want).
For example
Y = round(rand(5,3)*10);
figure;
subplot(2,2,1); bar(Y,'grouped'); title('Group')
Gives the following

Whereas
Y = round(rand(1,3)*10);
figure;
subplot(2,2,1); bar(Y,'grouped')
title('Group')
Gives this

(The data values are a little different because of the rand)
Not something like this

Any thoughts?
I've played around with transposing the matrices/ using staked bars etc. but this doesn't do much good. (In fact, grouped/stacked come out identical for this case, this is not, by my interpretation, of how bar is documented in matlab) Ideally I want to avoid adding null data to the bar chart as this screws things up later on.
Many thanks, Ed
Risposte (1)
Sean de Wolski
il 1 Ott 2013
Modificato: Sean de Wolski
il 1 Ott 2013
Hi Ed,
The trick here is to nan-pad Y to trick bar into thinking there are multiple groups:
Y = round(rand(1,3)*10);
figure;
if isrow(Y);
Y = vertcat(Y,nan(size(Y)));
end
bar(Y,'grouped')
xlim([0.5 1.5]) %know this to be true if no x
title('Group')
1 Commento
Ed
il 1 Ott 2013
Categorie
Scopri di più su Discrete Data 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!