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)

 Akzeptierte Antwort

Chunru
Chunru am 6 Dez. 2021
Bearbeitet: Chunru am 6 Dez. 2021

0 Stimmen

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 Kommentare

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

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

KSSV
KSSV am 6 Dez. 2021
Bearbeitet: KSSV am 6 Dez. 2021

1 Stimme

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 Kommentar

Gokhan Kayan
Gokhan Kayan am 6 Dez. 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.

Melden Sie sich an, um zu kommentieren.

Community Treasure Hunt

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

Start Hunting!

Translated by