Multiple Colors in Bar Graph

3 views (last 30 days)
Vartika Agarwal
Vartika Agarwal on 18 Nov 2021
Commented: Mathieu NOE on 19 Nov 2021
I want a bar graph that creates 10 different bars. I want every bar to be different color. How do I achieve this?

Accepted Answer

Mathieu NOE
Mathieu NOE on 18 Nov 2021
hello
see example below
clc
clear all
close all
data_co2 = [.142 .156 .191 .251 0.5 0.86 2.2 4 8.3];
data_gdp = rand(size(data_co2));
uniNames = {'eno','pck','zwf','foo','bar','jhy','vfd','vre','zqs'};
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%% main code %%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
data_min = min(data_gdp);
data_max = max(data_gdp);
map = colormap('jet');
[mmap,nmap] = size(map);
f = figure(1);
N = numel(data_co2);
for i=1:N
h = bar(N-i+1, data_co2(i));
if i == 1, hold on, end
% now define col value based on data value (min data value maps to colormap map index 1
% and max data value maps to colormap map last index);
ind = fix(1+(mmap-1)*(data_gdp(i)-data_min)/(data_max-data_min));
set(h, 'FaceColor', map(ind,:)) ;
% Display the values as labels at the tips of the bars.
xtips1 = h.XEndPoints;
ytips1 = h.YEndPoints + 0.25;
labels1 = string(h.YData);
text(xtips1,ytips1,labels1,'HorizontalAlignment','center')
end
%
set(gca, 'XTickLabel', '')
xlabetxt = uniNames;
xpos = -max(xlim)/25;
t = text(1:N,repmat(xpos,N,1), xlabetxt,'Rotation',45,'FontSize',15,'HorizontalAlignment','center');
ylabel('CO² concentration','FontSize',12)
title('CO² concentration vs. GDP range','FontSize',15)
hcb=colorbar('ver');
hcb.Title.String = "GDP range";
hcb.Title.FontSize = 13;
  6 Comments
Mathieu NOE
Mathieu NOE on 19 Nov 2021
My pleasure !
would you mind accepting my answer ?
tx

Sign in to comment.

More Answers (0)

Categories

Find more on Line Plots in Help Center and File Exchange

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by