Labels to a stacked bar

33 ビュー (過去 30 日間)
Milosha Britto Nordbø
Milosha Britto Nordbø 2020 年 7 月 30 日
コメント済み: Adam Danz 2022 年 4 月 13 日
I am trying to add labels for a stacked bar and need to help. I managed to add label to each part of the stack but unable to add at the total level (circled in red).

採用された回答

Adam Danz
Adam Danz 2020 年 7 月 30 日
編集済み: Adam Danz 2020 年 7 月 30 日
Here's a demo.
% Create stacked bar plot
x = randi(3,20,5);
h = bar(x,'stacked');
% Get the (x,y) coordinates for the top of each bar stack
y = sum(reshape(cell2mat(get(h', 'YData')),size(h,2),[]),1);
x = unique(cell2mat(get(h', 'XData')),'stable')
% Define labels
labels = num2cell(char(((1:size(x,1))+64)'))'; % 'A' 'B' 'C' ...
% Plot the text labels
offset = range(ylim)*.01;
th = text(x,y+offset,labels,'HorizontalAlignment','left',...
'VerticalAlignment','middle','rotation',90)
If you don't want to rotate the text labels,
th = text(x,y,string(y'),'HorizontalAlignment','Center',...
'VerticalAlignment','bottom');
For bar plots that are stacked and grouped, see this answer.
  6 件のコメント
Prasad Joshi
Prasad Joshi 2022 年 4 月 13 日
Can you answer this question Adam thanks in advance
Adam Danz
Adam Danz 2022 年 4 月 13 日
Hello @Prasad Joshi, which question?

サインインしてコメントする。

その他の回答 (1 件)

Milosha Britto Nordbø
Milosha Britto Nordbø 2020 年 7 月 30 日
編集済み: Adam Danz 2020 年 7 月 30 日
Thank you for tips. I used the below codes and got the follwing results:
bh=bar(Year,ValCha,'stacked');
y=sum(reshape(cell2mat(get(bh','YData')),size(bh,2),[]),1)
x=unique(cell2mat(get(bh','XData')),'stable')
th = text(x,y,string(y'),'HorizontalAlignment','left',...
'VerticalAlignment','middle','rotation',0)
I require the some help in correting the circle in pic. I need a little gap between the bars and number.
How can i do it?

カテゴリ

Help Center および File ExchangeAxis Labels についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by