![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/615645/image.jpeg)
how can i create a horizontal bar plot and label in each stack
조회 수: 13 (최근 30일)
이전 댓글 표시
I have ahorizontal two stacked bar plots, for the data shown below.
i want to label on the stacks & the thickness of the bar
Note: the figure i want to produce is shown on figure 1, but MATLAB produces the one shown on figure 2
a1=[51.2 1.6 8.7 9.9 1.1 26.0 1.5 0.0
25.5 0.0 0.3 7.9 0.0 58.6 5.4 2.3];
barh(a1,'stacked')
legend('1','2','3','4','5','6','7','8')
set(gca,'yticklabel',{'1996','2017'})
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/423603/image.png)
댓글 수: 0
채택된 답변
Scott MacKenzie
2021년 5월 12일
편집: Scott MacKenzie
2021년 5월 12일
a1=[51.2, 1.6, 8.7, 9.9, 1.1, 26.0, 1.5, 0.0;
25.5, 0.0, 0.3, 7.9, 0.0, 58.6, 5.4, 2.3];
b = barh(a1,'stacked', 'edgecolor', 'flat');
legend('1','2','3','4','5','6','7','8');
set(gca,'yticklabel',{'1996','2017'});
% add data value to middle of each bar (Note: x and y reversed)
for i=1:length(b)
for j = 1:length(b(i).YData)
y = b(i).YEndPoints(j) - (b(i).YData(j)) / 2;
s = sprintf('%.1f', b(i).YData(j));
text(y, b(i).XData(j), s);
end
end
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/615645/image.jpeg)
댓글 수: 0
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Graphics Object Programming에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!