代码之家  ›  专栏  ›  技术社区  ›  madn

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

  •  2
  • madn  · 技术社区  · 7 年前

    我有一个问题,要找到一个带有多个条的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 回复  |  直到 7 年前
        1
  •  2
  •   Adriaan Decoder    7 年前

    您正处在正确的轨道上,拥有

    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

        2
  •  -1
  •   M4rk0444    7 年前

    可以使用地物特性查看器来标识条形图位置的特性。尝试一下,改变一些值。然后可以访问属性并使用set函数。