Help with centralling text values above a Bar Chart with side by side data

3 ビュー (過去 30 日間)
Jason
Jason 2020 年 1 月 8 日
編集済み: Jason 2020 年 1 月 10 日
Hello, I am plottign a barchart from data from a uitable. I have 2 ydata sets that I plot next to each other as below.
im138.png
I am wanting to display the values on each column bar and I have almost done it. But they are not quite central with respect to the bars. Here is my code:
%Get data from UITABLE
data=get(handles.uitable3,'data');
Y=cell2mat(data(:,4));
X=data(:,2);
%Prepare for catergorical X data
Xdata = categorical(X);
X = reordercats(Xdata,X);
axes(handles.axes2);cla reset
%Combine Y data and create bar chart
Y1=cell2mat(data(:,3));
bpcombined = [Y, Y1];
hb = bar(X, bpcombined, 'grouped');
legend({'400-800nm','FilterBand'},'Location','northoutside','FontSize',10,'NumColumns',2)
%Add text to top of barcharts
for i1=1:numel(Y1)
text(X(i1),Y1(i1),num2str(Y1(i1),'%0.0f'),...
'HorizontalAlignment','left',...
'VerticalAlignment','bottom','Color','w')
text(X(i1),Y(i1),num2str(Y(i1),'%0.0f'),...
'HorizontalAlignment','right',...
'VerticalAlignment','bottom','Color','w')
end
%Sometimes the txt is off the plot so resize the ylims (Maybe there is a better way to do this!)
if max(ylim)>=Y(end)
ylim([0 1.10*Y(end)])
end
%Add the axtoolbar (This isn't working for some reason)
ax=gca;
axtoolbar(ax,{'export','restoreview','zoomout','zoomin'});
axtoolbar(ax,'Visible','on')
drawnow;

採用された回答

Rik
Rik 2020 年 1 月 10 日
Find the x position of the bar itself and use that in your call to text. Then you can set the HorizontalAlignment to center.
  3 件のコメント
Jason
Jason 2020 年 1 月 10 日
編集済み: Jason 2020 年 1 月 10 日
OK I think with Rik's suggestion I have worked it out.
When you plot catergorical data X is actually plots at locations x=1,2,3 etc.
Its the offset between groups that we need:
offset=hb(1).XOffset %hb is mt barchart handle
So I can loop through my catergorical data (X(i))
but put the x coordiante intext to be i + offset
Jason
Rik
Rik 2020 年 1 月 10 日
Glad to have been of help. Sorry for my slow response, I'm a bit busy today. Good to see you solved it.

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

その他の回答 (0 件)

カテゴリ

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

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by