我想绘制条形图,其中条形图分组如下:
我试过这段代码,但我没有得到这种类型的情节。请指导我如何生成如上图:
load Newy.txt;
load good.txt;
one = Newy(:,1);
orig = good(:,1);
hold on
bar(one,'m');
bar(orig,'g');
hold off
set(gca,'XTickLabel',{'0-19','20-39','40-79','80-159','160-319','320-639','640-1279','1280-1500'})
在每个文本文件中都有一个数字列表。该列表包含8个值。
答案 0 :(得分:0)
您可以使用histc来计算某些边缘内的值。 要对条形图进行分组,您可以在单个矩阵中收集它们(每列中包含值)。
edges = [0 20 40 80 160 320 640 1280 1501];
edLeg = cell(numel(edges)-1,1);
for i=1:length(edLeg)
edLeg{i} = sprintf('%d-%d',edges(i),edges(i+1)-1);
end
n = histc([one,orig],edges);
bar(n(1:end-1,:));
set(gca,'XTickLabels',edLeg)
legend('One','Orig')
我用这些作为测试数据
one = ceil(1500.*rand(200,1));
orig = ceil(1500.*rand(200,1));
答案 1 :(得分:0)
我找到了实现组合栏的方法:
我必须绘制数据,以便有8组条形图,其中每组包含3个条形图。
为此,我在每个文件中写了这样的数据:
Y = [30.9858 1.36816 38.6943
0.655176 6.44236 13.1563
1.42942 3.0947 0.621403
22.6364 2.80378 17.1299
0.621871 5.37145 1.87824
0.876739 5.97647 3.80334
40.6585 68.6757 23.0408
2.13606 6.26739 1.67559
];
bar(Y)