Changing colour of title in plots

44 次查看(过去 30 天)
Hello, I am trying to change the colour of strings in my plot titles and have used the following
title('\color{magenta}Month1, \color{cyan}Month2, \color{red}Month3')
However, I now want the strings Month1, Month2 & Month3 to be on different lines. I have tried
title({'\color{magenta}Month1, \color{cyan}Month2, \color{red}Month3'})
but the syntax is wrong.
Regards Jason

采纳的回答

Star Strider
Star Strider 2018-5-3
You simply need to tweak your existing title call. Put each as a separate string in a cell array:
title({'\color{magenta}Month1', '\color{cyan}Month2', '\color{red}Month3'})
This will do what you want.
  10 个评论
Jason
Jason 2018-5-4
Im really sorry but I wwas mistaken, its still not working when I use a name for a string.
folder =
'C:\images\BC_1.0um_1.6um (Cam530)'
its class is:
ans =
'char'
So using the suggestion:
t = {folder, 'Month2', 'Month1'};
c = {'magenta', 'cyan', 'red'};
for k1 = 1:numel(t)
tc{k1} = sprintf('\\color{%s}%s', c{k1}, t{k1});
end
title(tc)
I get:
Star Strider
Star Strider 2018-5-4
The single ‘backslant’ (\) characters are causing the problem, and the underscore characters cause a problem with the interpreter. You need to add two additional strrep calls:
t = {'C:\images\BC_1.0um_1.6um (Cam530)', 'C:\images\BC_1.0um_1.6um (Cam531)', 'C:\images\BC_1.0um_1.6um (Cam532)'};
c = {'magenta', 'cyan', 'red'};
for k1 = 1:numel(t)
ts = strrep(t{k1}, '\','\\'); % Replace ‘\’ With ‘\\’
ts = strrep(ts, '_','\_'); % Replace ‘_’ With ‘\_’
tc{k1} = sprintf('\\color{%s}%s', c{k1}, ts);
end
title(tc)
Single backslant operators are interpreted as control characters in sprintf (and fprintf), and underscores as designating the next character as a subscript using the default TeX interpreter. Putting a backslant ahead of such characters will force them to be treated as literals.
Specifying 'Interpreter','none' turns off everything, so none of the control characters are interpreted. Two serial strrep calls are necessary because it will replace one but not both in a single call. Doing both replacements in one call results in two different outputs, each with a different replacement but neither with both.

请先登录,再进行评论。

更多回答(1 个)

Ameer Hamza
Ameer Hamza 2018-5-3
Use \newline.
title('\color{magenta}Month1,\newline \color{cyan}Month2,\newline \color{red}Month3')

类别

Help CenterFile Exchange 中查找有关 Characters and Strings 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by