我使用表示群体方式的条形图创建一个数字。
我有一个矩阵告诉我这些方法是否在统计上有所不同。
sign_diff =
0 0 0 1
0 0 0 1
0 0 0 0
1 1 0 0
在这种情况下,第一组和第二组的平均值与第四组的平均值显着不同。
如何阅读矩阵:
第一行:最后一列中有一个 - >第一个酒吧与酒吧4不同,因此酒吧1和酒吧4获得一颗星。
第二行:最后一列中有一个 - >第二个酒吧与酒吧4不同,因此酒吧2和酒吧4获得一颗星。更多,因为条1和条2之间没有区别,条形1和条形2中的星形应该处于相同的高位
如何在不同的条形图上添加标记? 我想有这样的事情:
请注意,前两颗星应处于相同的水平,表示bar1和bar2没有区别,但它们都与bar4不同(那么第4栏顶部的星形应该更高)
希望你能帮助我
答案 0 :(得分:2)
我仍然不确定我是否完全掌握了高度逻辑(我们没有functioning example),但同时对叠加问题有一个简单的答案。您可以使用line
将星星叠加到地块上。
例如:
y = [1 2 3 4];
bar(y);
ylim([0 6]);
sign_diff = [0 0 0 1; 0 0 0 1; 0 0 0 0; 1 1 0 0];
needs_star = (sum(sign_diff) ~= 0); % See which bars need a star
star_heights = sum(sign_diff).*0.75;
star_x = 1:length(y);
star_y = max(y) + star_heights;
star_x = star_x(needs_star);
star_y = star_y(needs_star);
line(star_x, star_y, ...
'linestyle', 'none', ...
'marker', 'p', ...
'markersize', 15 ...
);
产生以下内容:
line
接受XY输入,因此如果您可以根据sign_diff
矩阵为星标创建坐标,则可以在line
调用中使用它们。
编辑:我已经更新了我的计算结果。根据您的数据需要进行一些调整。 ylim
和max
调用需要根据图表中数据的最大高度进行调整,以便将所有内容都放入轴中,并确保没有重叠。您可以将0.75
值调整为您想要的任何值,以便充分显示差异。这可能不是最有效的方法,但行为至少是明确的。