![figure.jpg](https://www.mathworks.com/matlabcentral/answers/uploaded_files/256391/figure.jpeg)
Change color of stacked bars according to values
19 views (last 30 days)
Show older comments
Hello,
I am trying to plot a stacked bar chart, where each bar has a color shade depending on values from another vector. I tried to use CData but failed..
bin_width is the bar widths that made the stacked bar chart with.
However, the color shade of each bar should depend on the values in mtot. I'm having trouble creating a new colormap that can be applied on my bar chart.
%reading input
mtot=table(3,:); %this is an array of size (1 x 32), these are the values that should define the color of the bars
% %tried to set a new color bar
% caxis([min_m max_m]);
% colorbar
% hold on
%plotting of stacked bar chart
% barcolor=c(size(mtot,2));
f=barh(0,bin_width','stacked','FaceColor','flat');
set(gca,'XScale','log');
0 Comments
Answers (1)
Xin Li
on 19 Dec 2019
Hi, Yasmin,
My understanding of your question is that you want to plot a horizontal stacked bar chart
with customized color for each bar. One way to achieve your goal is by setting 'FaceColor'
parameter for each bar using a for loop.
Here is an example, hope it is helpful.
load count.dat;
y = count(1:4,:); % y is a 4-by-3 matrix
width = 0.7;
colors = {'r', 'g', [0,0.5,0.5]}; % customized colors wrapped in a cell array, element could be either a color mark or a RGB vector
% set up colors
h = barh(y, width, 'stacked', 'LineStyle',':');
for i = 1 : 3
h(i).FaceColor = colors{i};
end
![figure.jpg](https://www.mathworks.com/matlabcentral/answers/uploaded_files/256391/figure.jpeg)
For more information, please refer to barh function document.
3 Comments
See Also
Categories
Find more on Bar Plots in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!