在组条形图中更改颜色
Changing colors in group barplot
我正在绘制带有误差条的分组条。就像现在一样,条形图要么是黄色要么是蓝色。我想改变这一点:每个组中的条形仍然应该有不同的颜色,但我想选择黄色和蓝色以外的颜色。这怎么可能?
model_series = [0.74*100, 0.5*100; 0.74*100, 0.5*100;0.74*100, 0.5*100 ];
model_error = [4.8,5.9;0, 0; 0,6];
%subplot(2,1,1)
h = bar(model_series);
set(h,'BarWidth',1); % The bars will now touch each other
set(gca,'YGrid','on')
set(gca,'GridLineStyle','-')
%set(h,'FaceColor',[0.2,0.5,0.3])
set(gca,'YLim',[0 100])
title(['\fontsize{16}Accuracies'])
set(gca,'xtick',[1 2 3 4 5 6])
set(gca,'xticklabel',{'\fontsize{16}1.condition','\fontsize{16}2.condition','\fontsize{16}3.condition'})
set(get(gca,'YLabel'),'String','\fontsize{16}Accuracy')
hold on;
numgroups = size(model_series, 1);
numbars = size(model_series, 2);
groupwidth = min(0.8, numbars/(numbars+1.5));
legend('\fontsize{16}Group1','\fontsize{16}Group2','\fontsize{16}Group3')
for i = 1:numbars
% Based on barweb.m by Bolu Ajiboye from MATLAB File Exchange
x = (1:numgroups) - groupwidth/2 + (2*i-1) * groupwidth / (2*numbars); % Aligning error bar with individual bar
errorbar(x, model_series(:,i), model_error(:,i), 'k', 'linestyle', 'none');
end
您要更改的 属性 确实是 'FaceColor'
,我看到您的代码中已将其注释掉。你把它写成 set(h,'FaceColor',[0.2,0.5,0.3])
这样改变了所有条形的 'FaceColor'
。如果您需要为每个栏使用不同的颜色,则需要为每个栏分配不同的颜色,如下所示:
set(h(1), 'FaceColor', 'm'); %Changing color of first bar to magenta
set(h(2), 'FaceColor', 'g'); %Changing color of second bar to green
配合MATLAB R2014b及以后的版本,还可以使用dot notation到access/change的属性。
h(1).FaceColor = 'm'; %Changing color of first bar to magenta
h(2).FaceColor = 'g'; %Changing color of second bar to green
我正在绘制带有误差条的分组条。就像现在一样,条形图要么是黄色要么是蓝色。我想改变这一点:每个组中的条形仍然应该有不同的颜色,但我想选择黄色和蓝色以外的颜色。这怎么可能?
model_series = [0.74*100, 0.5*100; 0.74*100, 0.5*100;0.74*100, 0.5*100 ];
model_error = [4.8,5.9;0, 0; 0,6];
%subplot(2,1,1)
h = bar(model_series);
set(h,'BarWidth',1); % The bars will now touch each other
set(gca,'YGrid','on')
set(gca,'GridLineStyle','-')
%set(h,'FaceColor',[0.2,0.5,0.3])
set(gca,'YLim',[0 100])
title(['\fontsize{16}Accuracies'])
set(gca,'xtick',[1 2 3 4 5 6])
set(gca,'xticklabel',{'\fontsize{16}1.condition','\fontsize{16}2.condition','\fontsize{16}3.condition'})
set(get(gca,'YLabel'),'String','\fontsize{16}Accuracy')
hold on;
numgroups = size(model_series, 1);
numbars = size(model_series, 2);
groupwidth = min(0.8, numbars/(numbars+1.5));
legend('\fontsize{16}Group1','\fontsize{16}Group2','\fontsize{16}Group3')
for i = 1:numbars
% Based on barweb.m by Bolu Ajiboye from MATLAB File Exchange
x = (1:numgroups) - groupwidth/2 + (2*i-1) * groupwidth / (2*numbars); % Aligning error bar with individual bar
errorbar(x, model_series(:,i), model_error(:,i), 'k', 'linestyle', 'none');
end
您要更改的 属性 确实是 'FaceColor'
,我看到您的代码中已将其注释掉。你把它写成 set(h,'FaceColor',[0.2,0.5,0.3])
这样改变了所有条形的 'FaceColor'
。如果您需要为每个栏使用不同的颜色,则需要为每个栏分配不同的颜色,如下所示:
set(h(1), 'FaceColor', 'm'); %Changing color of first bar to magenta
set(h(2), 'FaceColor', 'g'); %Changing color of second bar to green
配合MATLAB R2014b及以后的版本,还可以使用dot notation到access/change的属性。
h(1).FaceColor = 'm'; %Changing color of first bar to magenta
h(2).FaceColor = 'g'; %Changing color of second bar to green