MATLAB Answers

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

9 views (last 30 days)
Krishnashish Bose
Krishnashish Bose on 14 Jun 2021
Edited: Krishnashish Bose on 16 Jun 2021
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.

Answers (1)

Scott MacKenzie
Scott MacKenzie on 15 Jun 2021
Edited: Scott MacKenzie on 15 Jun 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 Comment
Krishnashish Bose
Krishnashish Bose on 16 Jun 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.

Sign in to comment.

Products


Release

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by