Hi all,
I have 3 vectors a,b,c with 4 numbers in each of them
I create another vector d with all the values of vectors a,b,c Sorted.
then I want to plot a barchart of vector d, BUT I would like to have different colours in the bars based on which vector they belong.
Can you help me with this?
for example:
values belong to vector a=green colour
values belong to vector b=blue colour
values belong to vector c=orang colour
Hope the quesiton is clear
thanks in advance
Nikolas

 Akzeptierte Antwort

Adam Danz
Adam Danz am 24 Jun. 2020

0 Stimmen

This has been addressed before within the forum (example1 ,example2).
The basic idea is to store the output handle to the bar objects
bh = bar(____);
Set the FaceColor to flat
bh.FaceColor = 'flat';
Redefine the CDdata which defines the color of each bar
colorData = bh.CData; % Current color arrangement.
% Example: change color of bar #2 to red
bh.CData(2,:) = [1 0 0];
% Example: define the colors based on the jet colormap
bh.CData = jet(size(bh.CData,1));

3 Kommentare

Nikolas Spiliopoulos
Nikolas Spiliopoulos am 25 Jun. 2020
Bearbeitet: Nikolas Spiliopoulos am 25 Jun. 2020
Hi again ,
thanks for the answer.
It's close to what I want but not exactly, as I would like the values that come from the same vector to have the same colour. Maybe I didn't put the question very clearly, apologies.
example
a=[10 20 30];
b=[15 25 50];
c=[5 40 80];
d=[a b c];
d_sorted=sort(d);
bar(d_sorted)
values coming from a=orange colour
values coming from b=green colour
values coming from c=bluecolour
I had a look to the examples, but I don't really understand the logic
thanks again!
You just need to index the color values accordingly.
a = [10 20 30];
b = [15 25 50];
c = [5 40 80];
d=[a b c];
ID = [ones(size(a)), ones(size(b))+1, ones(size(c))+2];
[d_sorted, sortIdx] = sort(d);
ID_sorted = ID(sortIdx);
bh = bar(d_sorted);
colors = jet(max(ID)); % Define a colormap
bh.FaceColor = 'flat';
bh.CData = colors(ID_sorted,:) % set the colors.
alright thanks, it works!!!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by