Change color of stacked bars according to values
16 ビュー (過去 30 日間)
古いコメントを表示
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 件のコメント
回答 (1 件)
Xin Li
2019 年 12 月 19 日
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
For more information, please refer to barh function document.
3 件のコメント
参考
カテゴリ
Help Center および File Exchange で Bar Plots についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!