In MATLAB I have a graph with some tick labels. I'd like to visually emphasize a few of these labels, but not all of them. Is there a way to only put SOME tick labels in boldface?
The following will make the XTickLabels bold: fig = figure(1); ax = axes; % or: ax = gca; plot(rand(10)); ax.
The command fontweight='bold' can be used to make a textbox or label in figure bold.
You can get around this by adding the correct commands to the LaTeX preamble, using rcParams . Specifcally, you need to use \boldmath to get the correct weight, and \usepackage{sfmath} to get sans-serif font.
Direct link to this answer xlabel('X Axis', 'FontSize', 9, 'FontWeight', 'bold'); % Make the x axis (line) and tick marks have a line width of 2 and color red.
Though I can't tell if it wasn't possible in the past, but nowadays (at least from R2014b) one could just use tex markup:
plot(0:10,0:10);
h = gca;
h.XTickLabel = {'\bf \color{red} 0','2','\bf 4','6','\bf \color{red} 8','10',}
Tick labels are not individual objects. They belong to axes and their properties determined by axes.
What you can do is to remove tick labels and replace them with text objects. In this case you can control the text properties.
plot(magic(5))
xticks = get(gca,'XTick'); %# x tick positions
xlabels = cellstr(get(gca,'XTickLabel')); %# get the x tick labels as cell array of strings
set(gca,'XTickLabel',[]) %# remove the labels from axes
n = numel(xlabels);
yl = ylim;
idx1 = 1:2:n; %# 1st set of ticks
idx2 = 2:2:n; %# 2nd set
t1 = text(xticks(idx1),repmat(yl(1),numel(idx1),1), xlabels(idx1), ...
'HorizontalAlignment','center','VerticalAlignment','top');
t2 = text(xticks(idx2),repmat(yl(1),numel(idx2),1), xlabels(idx2), ...
'HorizontalAlignment','center','VerticalAlignment','top');
set(t2,'FontWeight','bold') %# make the 2nd set bold
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With