Labels above bar-plot

44 次查看(过去 30 天)
Hello,
I have a matrix A (1X40). For this matrix I make its bar-plot. Aslo, I have the matrix B (1X40) which contains values, which I want to put as an label above each bar. I wrote a small code, but the values in matrix B do not appear (such label) above each bar. Below is the code.
bar(A) % 1X40
labels = arrayfun(@(value) num2str(values,'0.0f'),B,'UniformOutput',false);
text(A,B,labels,HorizontalAlignment','center',VerticalAlignment','bottom')
Your help is important !!!

采纳的回答

Riccardo Scorretti
Riccardo Scorretti 2022-3-25
Hi. Up to my understanding, the problem seems to be that when you use bar(A) the coordinates along x are 1, 2, ... 40. Assuming that variables A, B, and labels are correctly defined you could try this:
text(1:40, A, labels, 'HorizontalAlignment', 'center', 'VerticalAlignment', 'bottom');
For instance:
A = rand(1,40); B = rand(1,40);
labels = arrayfun(@(value) num2str(value,'%0.0f'),B,'UniformOutput',false);
bar(A);
text(1:40, A, labels, 'HorizontalAlignment', 'center', 'VerticalAlignment', 'bottom');

更多回答(2 个)

Arif Hoq
Arif Hoq 2022-3-25
编辑:Arif Hoq 2022-3-25
please expand the plot for a clear view.
A=1:5:200;
B=1:40;
bar(B)
text(1:length(A),B,num2str(B'),'VerticalAlignment','bottom','HorizontalAlignment','center');
box off

Chunru
Chunru 2022-3-25
A = 1:10;
B = randn(1, 10)*10;
bar(A, B, 0.5);
labels = compose('%.0f', B);
labels = 1×10 cell array
{'9'} {'8'} {'-3'} {'-7'} {'12'} {'-31'} {'-2'} {'9'} {'-8'} {'-11'}
text(A, B, labels, 'HorizontalAlignment','center','VerticalAlignment','bottom')

类别

Help CenterFile Exchange 中查找有关 Annotations 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by