2017-08-30 30 views
2

複数のバーがあるMATLABバープロットの正確な位置を見つけるのに問題があります。次のコード棒グラフの棒の位置を特定する方法は?

A =[2.1974e-01 4.1398e-01 1.0889e-01 3.3550e-01; 
    4.2575e-01 5.2680e-01 2.3446e-01 9.7119e-02; 
    2.5702e+00 2.5594e+00 3.2481e+00 9.9964e-01]; 
b=bar(A); 

を使用して、私は今、私は、例えば、そのプロットにコンテンツを追加したい、次のプロット

bar plot with multiple bars

を取得しますエラーバー、テキストなどが含まれます。そのため、個々のバーの正確な位置を知りたいと思います。

b(1).スキームを使用して個々のプロパティにアクセスできますが、どのプロパティがバーの位置に属するのかわかりません。個々のバーの正確な位置を取得するにはどうすればよいですか?

答えて

2

あなたは

b = bar(A); 

のプロパティで正しい軌道に乗ってあなたが必要とする特定のプロパティである

  1. b.XOffsetバーのグループ間の間隔
  2. b.XDataバーの各グループのインデックス
  3. b.YData各バーの頂部のy座標の各バー

の高さでは、単に `b.YData値を連結することができます。 x座標については

yb = cat(1, b.YData); 

、あなたが今

xb = bsxfun(@plus, b(1).XData, [b.XOffset]'); 

インデックスにオフセットを追加する必要がある、あなたは、各バーの上部の位置を持っています。ここにエラーバーの例があります。

figure; 
bar(A) 
hold on; 
for ii = 1:length(xb(:)) 
    plot([xb(ii), xb(ii)], [yb(ii)-0.1 yb(ii)+0.1], 'xk-') 
end 

Error bars on bar plot

-1

Figureプロパティビューアを使用して、バーのポストのプロパティを識別できます。試してみて、いくつかの値を変更してください。次に、プロパティにアクセスしてset関数を使用することができます。

値がバーのx軸とy軸の値です

+0

それは、この時点ではかなり曖昧だとして、この答えを詳しく説明してください。クリックするボタンと番号が表示されている場所を示すスクリーンショットを追加してください。さらに良い方法:毎回数値を手書きでコピーする必要がないように、プログラムでこれを行う方法を追加する。 – Adriaan

+0

良いアイデア、私は正しい変数を再度見つけることができませんでした。 x軸に関する唯一の関連情報は です。Xデータソース=自動です。 – madn

+0

@Adriaan以上の人がコメントしていますが、Figureのプロパティを使用するとx特定のグループのバー。 – Adiel

関連する問題