位置栏分组条形图matlab

时间:2015-09-24 07:25:43

标签: matlab plot bar-chart

在下图中

y = [2 2 3; 2 5 6; 2 8 9; 2 11 12];
bar(y)

enter image description here

如何检索每个柱的位置以超级强加标记?

例如,我想把一颗星放在第二组(第一组第二条)和第五组(第二组第二组)之上。

我更喜欢一种允许我在创建后修改绘图的解决方案。 (见图) 感谢

1 个答案:

答案 0 :(得分:1)

您可以使用Xdata和Ydata执行此操作:

y = [2 2 3; 2 5 6; 2 8 9; 2 11 12];
h=bar(y);

% getting xdata and ydata from second bar in each group
xdata= get (h(2),'XData');
ydata= get (h(2),'YData');

% plot a * on second bar from second group
hold on;
offset=0.25;
plot(xdata(2),ydata(2)+offset,'-*');

enter image description here

如果要在组的中心标记条形,此方法有效,但如果要标记例如一组中的第一组,则必须使用x轴中的偏移值调整*的位置。 / p>

例如我想标记第二组的第三个栏:

y = [2 2 3; 2 5 6; 2 8 9; 2 11 12];
h=bar(y);

% getting xdata and ydata from second bar in each group
xdata= get (h(3),'XData');
ydata= get (h(3),'YData');

% plot a * on second bar from second group
hold on;
offset=0.25;
xoffset = 0.23; % manual set of get from properties of bar handle
plot(xdata(2)+xoffset,ydata(2)+offset,'-*');

enter image description here