Hi, I want to show boundaries of two variables in bar graph. However, when I add second variable to bar graph, smaller value of first value disappear in bar graph (such as y=7, y=8). I didnt find way to make it appears.
X=[5 4 3];
Y=[1 7 8];
bar(X)
hold on
bar(Y)

 Réponse acceptée

Chunru
Chunru le 6 Déc 2021
Modifié(e) : Chunru le 6 Déc 2021
X=[5 4 3];
Y=[1 7 8];
bar([X; Y]')
figure
bar(X)
hold on
bar(Y, 'FaceAlpha', .5); % transparency
figure
XMin = min(X, Y)';
XMax = max(X, Y)';
bar([XMin, XMax-XMin], 'stacked')
% Idea solution: Plot each bar individually
n = numel(X);
figure; hold on
for i=1:n
if X(i)>Y(i)
bar(i, X(i), 'r');
bar(i, Y(i), 'b');
else
bar(i, Y(i), 'b');
bar(i, X(i), 'r');
end
end

4 commentaires

Gokhan Kayan
Gokhan Kayan le 6 Déc 2021
Modifié(e) : Gokhan Kayan le 6 Déc 2021
Thanks dear Chunru, second bar shows boundaries nicely, but only problem is colurs are different
Chunru
Chunru le 6 Déc 2021
The transparency make the overlapping colors different. Another non ideal solution is given above.
Chunru
Chunru le 6 Déc 2021
See the updated for an ideal solution.
Gokhan Kayan
Gokhan Kayan le 6 Déc 2021
Modifié(e) : Gokhan Kayan le 6 Déc 2021
Oh. The last solution worked perfectly!. Thanks a lot for the help.

Connectez-vous pour commenter.

Plus de réponses (1)

KSSV
KSSV le 6 Déc 2021
Modifié(e) : KSSV le 6 Déc 2021
You can go ahead like this right?
X=[5 4 3];
Y=[1 7 8];
x = 1:3 ;
bar(x,[X;Y])
Or you can try:
bar([X' Y'],'stacked')

1 commentaire

Gokhan Kayan
Gokhan Kayan le 6 Déc 2021
Unfortunately, I dont want them like first way because i will draw line graph too. The graph will be sophisticated. Second graph adds y to x. I dont want summation.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Graph and Network Algorithms dans Centre d'aide et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by