How can I change the color of bars in bar graph?

China☆狼群 提交于 2019-12-17 14:21:32

问题


I'd like to create a bar graph where I change the color of some bars. The code for my bar graph is the following:

 y = [0.04552309, -0.001730885, 0.023943445, 0.065564478, 0.032253892, 0.013442562, ...
      -0.011172323, 0.024595622, -0.100614203, -0.001444697, 0.019383706, 0.890249809];
 bar(y)

I want the first six bars to be black and the last 6 bars to be blue, but I have no idea how to do it.


回答1:


You need to plot them separately (but on the same axes):

bar(1:6,y(1:6),'k')
hold on
bar(7:numel(y),y(7:end),'b')
set(gca,'xtick',1:numel(y))




回答2:


The following is adapted from Bar plot with bars in different colors on MATLAB Central:

y= [0.04552309, -0.001730885, 0.023943445, 0.065564478, 0.032253892, 0.013442562,    -0.011172323, 0.024595622, -0.100614203, -0.001444697, 0.019383706, 0.890249809];
for ii=1:12
  h = bar(ii-0.5, y(ii));
  if ii == 1
     hold on
  end
  if ii<=6
     col = 'k';
  else
     col = 'b';
  end    
  set(h, 'FaceColor', col,'BarWidth',0.4) 
end
axis([0 12 -0.2 1])
hold off



回答3:


No need to plot separately, here is the simple solution:

y= [0.04552309, -0.001730885, 0.023943445, 0.065564478, 0.032253892, 0.013442562,    -0.011172323, 0.024595622, -0.100614203, -0.001444697, 0.019383706, 0.890249809];
figure,
bar(y)

y1 = zeros(1,length(y));
y1(3:5) = y(3:5);
hold on
h = bar(y1)
set(h, 'FaceColor', 'k') 

See output




回答4:


Very late as usual, but there is an easy way to 'trick' matlab. You first define your colormap (for instance 3 different colors):

mycolors = lines(3) % or just specify each row by hand

Then you plot your bars in the following way:

bar(x,diag(y),'stacked'); % x will be usually defined as x = 1:number_of_bars
colormap(mycolors);

That's all. The magic comes from the diag function together with the 'stacked' tag that makes matlab think you have more data (but they are all 0).



来源:https://stackoverflow.com/questions/20223647/how-can-i-change-the-color-of-bars-in-bar-graph

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!