2017-08-30 61 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值。

yb = cat(1, b.YData); 

對於x座標,你需要添加偏移給指數

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

您可以使用圖形屬性查看器來識別條形件的屬性。試一試並改變一些值。然後你可以訪問這些屬性並使用set函數。

的值是酒吧的x和y的值

+0

請詳細說明這個答案,因爲它是相當模糊的,在這一點上。請添加屏幕截圖,顯示點擊哪些按鈕以及顯示數字的位置。更好的是:增加一種方式來以編程方式完成這個任務,以免每次都手動複製數字。 – Adriaan

+0

好主意,雖然我再也找不到合適的變量。關於X軸的唯一相關信息似乎是 'X Data Source = auto'這並沒有幫助 – madn

+0

超過@Adriaan評論,這個答案是錯誤的,因爲使用數字屬性將給每個相同的x值酒吧在一個特定的組。 – Adiel

相關問題