我有一个问题是找到带有多个条形的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);
我得到以下情节
现在我想在该情节中添加内容,例如错误栏,文本等。出于这个原因,我想知道各个条的确切位置。
我可以使用b(1).
方案访问各个属性,但我不知道哪个属性属于条位置。如何获得每个酒吧的确切位置?
答案 0 :(得分:2)
你走在正确的轨道上,有
的属性b = bar(A);
您需要的具体属性是
b.XOffset
条组之间的间距b.XData
每组条的索引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
答案 1 :(得分:-1)
您可以使用figure属性查看器来识别条形邮件的属性。试一试并改变一些值。然后,您可以访问属性并使用set函数。
值是条形的x和y值