How I get y-axis bold & new times roman font when using latex as 'TickLabelInterpreter'?
29 views (last 30 days)
Show older comments
Hi,
I am trying to use latex as TickLabelInterprete. I want to bold both the x-axis (where I use the x-ticklabel along with latex syntax) and y-axis (nothing used, just normal text). At the same time, I want to set the font of all the texts on the figure to be Times New Roman.
I am attaching my code as follows. It appears to be strange for me, when I do not set the TickLabelInterprete to be latex, everything is fine, I can bold the y-axis easily (both y-label and the number on the y-axis). But when TickLabelInterprete = 'latex', the number on the y-axis will automatically turn back to normal font. Any suggestions?
I would like to thank you in advance!
close all;
data = [1,1,1,1;2,2,2,2;3,3,3,3;4,4,4,4];
bar(data)
hold on
grid on
xticks([1 2 3 4])
xtickangle(0)
ax = gca;
ax.TickLabelInterpreter = 'latex';
xTicklabels = {'\textbf{label 1} \boldmath$E_1$', ...
'\textbf{label 2} \boldmath$E_2$', ...
'\textbf{label 3} \boldmath$E_3$', ...
'\textbf{label 4} \boldmath$E_4$'};
set(gca,'XTickLabel',xTicklabels);
xlabel("Different algorithms");
ylabel("Result of schemes");
lgd = legend("1",...
"2",...
"3",...
"4",...
'Location',"northwest");
lgd.FontWeight = "bold";
h = gca;
h.XAxis.FontWeight = 'bold';
h.XAxis.LineWidth = 1;
h.YAxis.FontWeight = 'bold';
h.YAxis.LineWidth = 1;
set(gca,'fontname','times');
hold off;
0 Comments
Accepted Answer
Voss
on 14 Jul 2022
You can use
ax.YTickLabel = strcat('\textbf{',ax.YTickLabel,'}');
to make the YTickLabels bold with the LaTeX interpreter, as shown below.
close all;
data = [1,1,1,1;2,2,2,2;3,3,3,3;4,4,4,4];
bar(data)
hold on
grid on
xticks([1 2 3 4])
xtickangle(0)
ax = gca;
ax.TickLabelInterpreter = 'latex';
xTicklabels = { ...
'\textbf{label 1} \boldmath$E_1$', ...
'\textbf{label 2} \boldmath$E_2$', ...
'\textbf{label 3} \boldmath$E_3$', ...
'\textbf{label 4} \boldmath$E_4$'};
set(gca,'XTickLabel',xTicklabels);
ax.YTickLabel = strcat('\textbf{',ax.YTickLabel,'}'); % include this line
xlabel("Different algorithms");
ylabel("Result of schemes");
lgd = legend( ...
"1",...
"2",...
"3",...
"4",...
'Location',"northwest");
lgd.FontWeight = "bold";
ax.XAxis.FontWeight = 'bold';
ax.XAxis.LineWidth = 1;
ax.YAxis.FontWeight = 'bold';
ax.YAxis.LineWidth = 1;
ax.FontName = 'times';
hold off;
6 Comments
Amelie
on 27 Mar 2024
Thank you so much! It's great that you don't just provide a solution to the problem but also illustrate it with an example and explain what you are doing and what it means; many thanks !
More Answers (0)
See Also
Categories
Find more on Labels and Annotations in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
