how do i combine two bar graphs

466 visualizaciones (últimos 30 días)
Diego Monsave
Diego Monsave el 23 de En. de 2021
Movida: Adam Danz el 13 de Jun. de 2023
I have tried to combine these two graphics in many ways but nothing works for me, just as the creation of the legends gives me an error. I need help for this because neither the combination nor the legends want to serve me, Thank you!
b1=bar(app.CasosUIAxes,data1.dateRep,data1.cases);
hold on
%grafica de barras 2
b2=bar(app.CasosUIAxes,data2.dateRep,data2.cases);
hold off
legend(app.CasosUIAxes,[b1 b2],'Bar Chart 1','Bar Chart 2')
  2 comentarios
VBBV
VBBV el 24 de En. de 2021
Do you mean bar plots don't appear at all ?
Diego Monsave
Diego Monsave el 24 de En. de 2021
Only the data of the second graph is shown but not the first. The idea is that the two graphics appear in one.

Iniciar sesión para comentar.

Respuesta aceptada

Benjamin Kraus
Benjamin Kraus el 8 de Feb. de 2021
I could be misunderstanding your question, but I suspect the problem you are facing is that your bar graphs are perfectly overlapping one another. If you create two bar graphs with the same x-values, they will overlap each other and one could be hidden behind the other. The better approach is to create both bars simulteneously with a single call to the bar command.
Consider these three blocks of code. The second approach is preferred.
Overlapping Bars
x = 1:5;
y1 = 1:5;
y2 = 2:6;
bar(x,y1);
hold on
bar(x,y2); % Second bar ignores first bar and will overlap the first bar
Grouped Bars (Preferred Approach)
x = 1:5;
y1 = 1:5;
y2 = 2:6;
bar(x,[y1;y2]); % Creating both bars at once, they are aware of one another and will not overlap
This approach can be used if the x-data for both bars is different as well, either by padding the x-values and y-values with NaNs, or passing to matrices into the bar command. If you pass two matrices into the bar command, be careful of the orientation of the matrices, or you will get unexpected results.
x1 = 1:5;
x2 = 3:7;
y1 = 1:5;
y2 = 2:6;
bar([x1; x2]',[y1;y2]');
Manually Shifted Bars
x = 1:5;
y1 = 1:5;
y2 = 2:6;
bar(x-0.25,y1,0.5) % Manually shift the bar and make it narrower so the other bar fits.
hold on
bar(x+0.25,y2,0.5) % Manually shift the bar and make it narrower so the other bar fits.
  4 comentarios
Benjamin Kraus
Benjamin Kraus el 12 de Jun. de 2023
Just to clarify, the issue @hxen is having is that the bar function requires exact equality before it will consider two x-values to be part of the same group.
Consider these two examples:
x = [1 1; 2 2; 3 3];
y = x;
figure
bar(x,y)
x2 = x;
x2(2) = x2(2)+eps(2); % Intentionally make a difference of just eps
figure
bar(x2,y)
xlim([0.5 3.5])
hxen
hxen el 12 de Jun. de 2023
Movida: Adam Danz el 13 de Jun. de 2023
Thank you Benjamin for the helpful feedback!

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Line Plots en Help Center y File Exchange.

Productos


Versión

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by