How to call a function within ax=gca format
3 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
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 Kommentare
Akzeptierte Antwort
Rik
am 25 Aug. 2020
Bearbeitet: Rik
am 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});
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Axis Labels finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!