How to call a function within ax=gca format
2 views (last 30 days)
Show older comments
Hi,
I got a plot
I want to colour the X Tick labels using cmu matlab package (http://matlab.cheme.cmu.edu/2011/09/13/check-out-the-new-fall-colors/#8)
So, to call cmu function, just type
c = @cmu.colors;
c('deep carrot orange').
I tried this here,
ax=gca
ax.XTickLabel{1}= ['\color{black}' ax.XTickLabel{1}];
ax.XTickLabel{2}= ['\color{red}' ax.XTickLabel{2}];
ax.XTickLabel{3}= [c('deep carrot orange') ax.XTickLabel{3}];
But there is no label for 3rd position. I do not know how to call c here.
Thanks.
0 Comments
Accepted Answer
Rik
on 25 Aug 2020
Edited: Rik
on 25 Aug 2020
c = @cmu.colors;
col=c('deep carrot orange');%returns this col=[0.9100 0.4100 0.1700];
%convert the triplet to a hex RGB color code
col=dec2hex(round(col*255),2);col=col';col=col(:)';
figure(1),clf(1)
plot(rand(1,10))
ax=gca;
ax.TickLabelInterpreter='tex';%using 'latex' instead doesn't help
ax.XTickLabel{1}= ['{\color{black}' ax.XTickLabel{1} '}'];
ax.XTickLabel{2}= ['\color{red}' ax.XTickLabel{2}];
ax.XTickLabel{3}=['\color[HTML]{' col '}' ax.XTickLabel{3}];
Note that this function returns an RGB triplet, not some magic indication of what the color should be.
I must therefore echo Walter in that old post: you will have to live with the default colors or use text to replace them one by one
Edit:
c = @cmu.colors;
col=c('deep carrot orange');%returns this col=[0.9100 0.4100 0.1700];
n=3;
ax.XTickLabel{n} = sprintf('\\color[rgb]{%f,%f,%f}%s', col, ax.XTickLabel{n});
More Answers (0)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!