How to remove space between grouped bars in a bar graph?

Adjusting space betwwen bars of a normal bar graph is pretty straightforward. However, there doesn't seem to be a way of doing the same for grouped bars. I am not asking about the space between bars of the same group, but the space between groups.

Réponses (1)

Scott MacKenzie
Scott MacKenzie le 15 Juin 2021
Modifié(e) : Scott MacKenzie le 15 Juin 2021
Here's an approach that might be useful. What if you ungroup the data first? There will be no space between the groups, because there are no groups per se. But, to retain the "grouping", you need the same color sequence as if the data were grouped. Below is the code. The bottom chart is what you are looking for (I think).
y1 = rand(3,4); % grouped data
y2 = reshape(y1',[], 1); % same data, ungrouped
tiledlayout(2,1);
nexttile;
b1 = bar(y1);
cd = [b1(:).FaceColor];
cd = reshape(cd',3,[])';
nexttile;
b2 = bar(y2, 'facecolor', 'flat'); % same data, same colors, no space between groups
b2.CData = repmat(cd, length(b2.XData)/size(cd,1),1);

1 commentaire

Krishnashish Bose
Krishnashish Bose le 16 Juin 2021
Modifié(e) : Krishnashish Bose le 16 Juin 2021
Thanks Scott. What you mentioned is how I have been doing it, but it becomes confusing which bars are of the same or adjacent groups. I heard from Mathworks team today that it cannot be done currently, and they would introduce this feature in future versions of Matlab.

Connectez-vous pour commenter.

Produits

Version

R2021a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by