多くの棒がある棒グラフにラベルを追加しようとしています。複雑な要因は、これをループで(数百の棒グラフに対して)実行していて、Matlabに自動的にラベル付けを実行させたいということです。基本的に、特定のしきい値を超える高さのピークにのみラベルを付けたいと思います。これを簡単にできるといいのですが、バーにx値のラベルを付けたいだけです。
これは、ラベルをどのように配置するかを示したものです。
元のデータにまだアクセスでき、しきい値を超える各ポイントにラベルを付ける場合は、次の方法でこれを行うことができます。
text
(x, y, num2str(x))
しきい値を超える連続した値を持つピーク(画像の115程度など)に単一のラベルを付ける場合は、少し複雑なロジックを追加して、それらのピークをグループ化できます...それが必要な場合、私たちはあなたがそれを理解するのを手伝うことができます。
@Dougalで述べたように、text
関数はあなたが望むものです。ただし、ループする必要はありません。
%# generate some data
y = poissrnd(5,20,1);
x = 1:20;
%# find where the data is above the threshold
bigIdx = y>6;
%# create a bar plot
bar(x,y)
%# add the text. The alignment setting ensures that the text
%# is directly above the bar. I add 1 here as an y-offset,
%# the ideal value may depend on your data
text(x(bigIdx),y(bigIdx)+1,num2str(x(bigIdx)),'horizontalAlignment','center')
%# you may need to make sure that the y-limit is high enough
%# so that the text is visible
ylim([0 max(y)+2])