我试图绘制一个简单的条形图,其中包含8个条形图,所有偶数条形条形图都是一种颜色,所有奇数条形条形图都是不同的颜色。以下是我所做的:
info = [mean1 mean2 mean3 mean4 mean5 mean6 mean7 nean8];
sky_blue = [86, 180, 233] / 256;
orange = [230, 159, 0] / 256
for d=1:length(info)
plot_bar(d)=bar(info(1,d), 'BarWidth', 0.5);
if mod(d,2)==0
set(plot_bar(d),'FaceColor', sky_blue);
else
set(plot_bar(d),'FaceColor', orange);
end
hold on;
end
由于某种原因,条形垂直堆叠,一个在另一个的顶部。有谁能告诉我如何水平分开酒吧?
另外,我如何制作一个传说,表示sky_blue颜色作为对照组,橙色作为药物组?谢谢!
答案 0 :(得分:0)
有快速解决方案!
在每次迭代中,您都在绘制一个新的条形图而不加快其X坐标,因此所有条形图都在X=1
将您的代码更改为(请注意bar()函数中唯一的更改):
info = [mean1 mean2 mean3 mean4 mean5 mean6 mean7 nean8];
sky_blue = [86, 180, 233] / 256;
orange = [230, 159, 0] / 256
for d=1:length(info)
plot_bar(d)=bar(d,info(1,d), 'BarWidth', 0.5);
if mod(d,2)==0
set(plot_bar(d),'FaceColor', sky_blue);
else
set(plot_bar(d),'FaceColor', orange);
end
hold on;
end
输出:
注意:您可能想要使用XtickLabel来标记您的情节,看起来这个方法并不是很好。
答案 1 :(得分:0)
你可以在没有循环的情况下完成:一次性使用所有橙色条,然后一次性使用所有天蓝色条。请注意2
中'BarWidth'
的aditional除法。
info = [mean1 mean2 mean3 mean4 mean5 mean6 mean7 nean8];
sky_blue = [86, 180, 233] / 256;
orange = [230, 159, 0] / 256
bar(1:2:numel(info), info(1:2:end), 'BarWidth', 0.5/2, 'Facecolor', orange);
hold on
bar(2:2:numel(info), info(2:2:end), 'BarWidth', 0.5/2, 'Facecolor', sky_blue);