2

多くの棒がある棒グラフにラベルを追加しようとしています。複雑な要因は、これをループで(数百の棒グラフに対して)実行していて、Matlabに自動的にラベル付けを実行させたいということです。基本的に、特定のしきい値を超える高さのピークにのみラベルを付けたいと思います。これを簡単にできるといいのですが、バーにx値のラベルを付けたいだけです。

これは、ラベルをどのように配置するかを示したものです。

4

2 に答える 2

2

元のデータにまだアクセスでき、しきい値を超える各ポイントにラベルを付ける場合は、次の方法でこれを行うことができます。

  • グラフのデータ配列の各(x、y)をループします
    • yがしきい値よりも大きい場合
      • その後、電話text(x, y, num2str(x))

しきい値を超える連続した値を持つピーク(画像の115程度など)に単一のラベルを付ける場合は、少し複雑なロジックを追加して、それらのピークをグループ化できます...それが必要な場合、私たちはあなたがそれを理解するのを手伝うことができます。

于 2012-05-09T18:52:37.670 に答える
2

@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])

ここに画像の説明を入力

于 2012-05-09T22:00:45.830 に答える