如何确定条形图中条形图的位置?

时间:2017-08-30 08:00:53

标签: matlab plot histogram bar-chart errorbar

我有一个问题是找到带有多个条形的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 个答案:

答案 0 :(得分:2)

你走在正确的轨道上,有

的属性
b = bar(A);

您需要的具体属性是

  1. b.XOffset条组之间的间距
  2. b.XData每组条的索引
  3. b.YData每个栏的高度
  4. 对于每个条形顶部的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 :(得分:-1)

您可以使用figure属性查看器来识别条形邮件的属性。试一试并改变一些值。然后,您可以访问属性并使用set函数。

值是条形的x和y值