- https://www.mathworks.com/matlabcentral/answers/553894-barcharts-colours-based-on-other-vectors#answer_456622
- https://www.mathworks.com/matlabcentral/answers/486175-how-can-i-change-colors-and-generate-errorbars-in-a-bar-graph#answer_397071
Change color on a single bar
33 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Alessandro Ruda
le 9 Mar 2021
Commenté : Alessandro Ruda
le 10 Mar 2021
Dear MatLab comunity,
I have a problem in changing color on a single or multiple bars in a normal and easy bar graph.
I tried the following:
%% Load Data
RMSD_UDP = load('rmsf_UDP.dat');
% Assign variables
n = RMSD_UDP(:,1); %number of residue
x_UDP = RMSD_UDP(:,2); %RMSF for given residue
%Figure
figure
hold on
title('RMSF UDP');
w1 = 0.5;
b = bar(n,x_UDP,w1)
b.FaceColor = 'g';
b.CData(2,:) = [.5 0 .5];
b.CData(44,:) = ['k'];
xlabel('Residue');
ylabel('RMSF');
xlim([0 364])
ylim([0 5])
It doesn't work but I don't know if it's the MatLab version (R2017a). I tried it on one of the latest ones and it didn't work either. there must be some detail i am not seeing.
Any idea?
Have a nice day,
Alex
0 commentaires
Réponse acceptée
Adam Danz
le 9 Mar 2021
Modifié(e) : Adam Danz
le 9 Mar 2021
You have to set FaceColor to 'flat'.
Update: These methods rely on using the CData property which became available in Matlab r2017b.
7 commentaires
Adam Danz
le 9 Mar 2021
No, that's now how to set CData. You don't lose that opportunity; you never had it in the first place.
The documentation for CData states "By default, when you create a bar chart, the CData property contains a three-column matrix of RGB triplets. You can change the color for a particular bar by changing the corresponding row in the matrix. This property applies only when the FaceColor or EdgeColor property is set to 'flat'."
It won't throw an error because characters are converted to double but the colors will be unrelated to the color characters.
To set the color of several bars,
b.CData(10:20,:) = [1 0 0] .* ones(11,1); % for 11 rows (10:20)
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Graphics Performance dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!