Putting certain tick labels in boldface (but not all of them)?

后端 未结 4 1192
慢半拍i
慢半拍i 2020-12-19 10:45

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 b

相关标签:
4条回答
  • 2020-12-19 10:57
    %% creat a new control vector, like here I want to make some special labels
    as bold red. 
    
    control_vector = cell(length(the_origional_Xlabels), 1);
    control_vector(index) = {'\bf \color{red} '}; 
    
    %% the put string cat the control vector and the original xlables
    new_labels = control_vector, protease_universal_sorted));
    xticks(1:length(the_the_origional_Xlabels));
    xticklabels(new_labels)
    
    0 讨论(0)
  • 2020-12-19 11:08

    You could also overlay your "original" axis with a second one. On the second you configure the ticks bold. Together with linkaxes you maintain proper zoom behavior.

    0 讨论(0)
  • 2020-12-19 11:10

    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',}
    

    0 讨论(0)
  • 2020-12-19 11:13

    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
    

    Bold ticks example

    0 讨论(0)
提交回复
热议问题