Bar graphs don't group bars if there is only one group in the data

15 vues (au cours des 30 derniers jours)
FM
FM le 1 Déc 2022
Commenté : VBBV le 2 Déc 2022
I have a lot of bar graphs to plot. The bars must be grouped into pairs. If the number of pairs is one, then grouping doesn't seem to work:
% Artificial data: Two vertical vectors of height 3
x=reshape(randperm(6),3,2)
% Correct grouping into pairs
subplot(1,2,1)
barh(x);
% NO grouping :(
subplot(1,2,2)
barh(x(1,:));
Is there any way to force barh to group consistently? I want each column of "x" to form a series, even if it is a series of 1. So x(1,:) forms two series, only 1 bar each. In the grouped bar chart, it should form one group of two bars, each bar with a different colour (just like each group on the left subplot). In contrast, the right subplot shows that it forms a single series of two bars (or a single series of two groups, each containing one bar). They also have separate tick lables, which bars in the same group should not.
I am using Matlab 2022a.
  1 commentaire
VBBV
VBBV le 2 Déc 2022
I have moved the code in comment to main body of the answer now.

Connectez-vous pour commenter.

Réponse acceptée

VBBV
VBBV le 1 Déc 2022
Déplacé(e) : VBBV le 1 Déc 2022
like this ?
% Artificial data: Two vertical vectors of height 3
x=reshape(randperm(6),3,2)
x = 3×2
5 6 2 3 1 4
% Correct grouping into pairs
subplot(1,2,1)
barh(x);
subplot(1,2,2)
barh(1,x(1,:).') % like this
  3 commentaires
FM
FM le 1 Déc 2022
Déplacé(e) : VBBV le 1 Déc 2022
Thanks for replying, VBBV.
My apologies, but I think I may not have been clear. I want each column of "x" to form a series, even if it is a series of 1. So x(1,:) forms two series, only 1 bar each. In the grouped bar chart, it should form one group of two bars.
FM
FM le 1 Déc 2022
Déplacé(e) : VBBV le 1 Déc 2022
Yes! After seeing your syntax, I searched for where this is described in the doc page for "barh". I found it under the description of the "y" argument -- not where I would expect it.
I'd like to mark your response as "the answer" to my question. Currently, the code that addresses the question is in the comment, whereas the main body of the answer contains different code. Is there any way to put your latest example code into the main body of the answer posting?
Thanks!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Discrete Data Plots dans Help Center et File Exchange

Tags

Produits


Version

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by