Borrar filtros
Borrar filtros

How to plot stacked bar in Matlab with showing each limit ?

1 visualización (últimos 30 días)
AFAQ AHMAD
AFAQ AHMAD el 27 de Nov. de 2015
Comentada: dpb el 28 de Nov. de 2015
Hi
I am looking a code in Matlab to plot the stacked bar graph (like in the picture).
This stacked bar graph is also labelled (inside the graph) with the limits.
I try to solve same problem in excel but the limits labelling is problem?
Please if any one knows the code please share it.

Respuesta aceptada

dpb
dpb el 27 de Nov. de 2015
>> Y = [5 1 2; 8 3 7; 9 6 8; 5 5 5; 4 2 3]; % sample data from bar example...
>> Z=cumsum(Y,2); % bar cumulative heights for positioning
>> X=repmat([1:5].',1,3); % x locations for each Y
>> bar(Y,'stack') % base stacked bar
>> colormap(copper) % change color map
>> arrayfun(@(x,y,z) text(x,y,num2str(z), ...
'horizontalalign','center', ...
'verticalalign','top', ...
'color','w'), ...
X,Z,Y) % write the labels for each subset
Salt to suit colors, locations. Use average of the bar height plus lower to center vertically, for example. >>
  2 comentarios
AFAQ AHMAD
AFAQ AHMAD el 28 de Nov. de 2015
Thank you dpb Please tell me how to display the ranges(limits) of each portion of the stacked bar. Thank you
dpb
dpb el 28 de Nov. de 2015
Simplest is probably two steps; first use the bottoms which would be
Ybot=[zeros(1,size(Y,2)); Y(1:end-1,:)];
with X,Z as defined above excepting use 'verticalalign','bottom' to write above that height. Then the above to do the tops. NB: you'll have "issues" with short blocks such as the middle of the leftmost bar that doesn't have enough height to display both elements at the same x-axis position. An alternative would be to use the average height for the y location and write both limits as
num2str([ZL,ZU],'%d - %d')
where ZL,ZU are the two lower, upper array locations described above. You'd then have one call to arrayfun but four dummy arguments instead of three.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre 2-D and 3-D Plots en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by