如何确定条形图中条形的位置?
How to determine the locations of bars in a bar plot?
我在查找具有多个条形的 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).
方案访问各个属性,但我不知道哪个 属性 属于栏位置。我如何获得每个单独栏的确切位置?
您可以使用图 属性 查看器来识别条形位置的属性。试一试并更改一些值。然后您可以访问属性并使用 set 函数。
这些值是条形的 x 和 y 值
你走在正确的轨道上
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
我在查找具有多个条形的 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).
方案访问各个属性,但我不知道哪个 属性 属于栏位置。我如何获得每个单独栏的确切位置?
您可以使用图 属性 查看器来识别条形位置的属性。试一试并更改一些值。然后您可以访问属性并使用 set 函数。
这些值是条形的 x 和 y 值
你走在正确的轨道上
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