【问题标题】:Why matlab skips 2nd half of labels?为什么 matlab 会跳过标签的后半部分?
【发布时间】:2016-09-20 13:36:19
【问题描述】:

这是一个非常简洁的代码,用于使用imagesc 命令以缩放颜色显示矩阵。问题是最终的数字有错误的标签并且没有显示第二半标签(它应该是从 1 到 21,但它是从 1 到 10)

figure;
imagesc(magic(21));
set(gca,'XTickLabel',{'1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21'})
set(gca,'YTickLabel',{'1' '2' '3' '4' '5' '6' '7' '8' '9' '10' '11' '12' '13' '14' '15' '16' '17' '18' '19' '20' '21'})

我使用的是 Ubuntu 16.04 和 Matlab 2016b。

【问题讨论】:

    标签: matlab matlab-figure figure


    【解决方案1】:

    您设置了标签文本,但没有设置位置,因此它会自动放置标签位置,然后替换它们的文本。

    要设置标签的位置,首先:

    set(gca,'XTick',...)
    

    然后你可以在这些标签上写下你喜欢的任何东西:

    set(gca,'XTickLabel',{'banana', 'platano', 'potato',... })
    

    【讨论】:

    • @Woeitg 我特意省略了它,以明确您的标签不需要包含其位置的文本。您可以在... 中添加任何内容,例如1:10:100,但我认为在你的情况下你需要1:21
    【解决方案2】:

    您必须为这些刻度分配位置,而不仅仅是添加标签。

    figure;
    imagesc(magic(21));
    ax1 = gca;
    ax1.YTick = 1:21;
    ax1.XTick = 1:21;
    ax1.XTickLabels = {'One','Two','Three',...
    ax1.YTickLabels = {'Red','Brown','Green',...
    

    此外,自 Matlab 2014b Mathworks 创建了一个新的图形系统。您可以直接将图形作为对象访问,而不是到处使用set 和get。

    【讨论】:

    • 好答案。现在如果我想为标签而不是数字设置一个字符串列表(例如月份)怎么办?
    • @Woeitg 你误会了。 Xtick 告诉你在哪里放置标签,Xticklabels 告诉你这些标签上写了什么。您需要同时使用两者。
    • @Woeitg nice ;) 接受对你最有帮助的答案 ;)
    • @Woeitg 没关系,只是你更喜欢的那个。重要的是你确实接受了一个
    【解决方案3】:

    你可以测试这个:

    imagesc(magic(21));
    set(gca,'XLim',[1 21])
    set(gca,'XTick',[1:1:21])
    set(gca,'XTickLabel',{'1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21'})
    set(gca,'YLim',[1 21])
    set(gca,'YTick',[1:1:21])
    set(gca,'YTickLabel',{'1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21'})
    

    【讨论】:

    • 没有 xlim 和 ylim 也显示相同的结果
    • 是的,但如果您不使用XTick,那么XLim 将类似于[0.5 21.5]。
    • 我明白了,这是有区别的,但是我更喜欢在没有 Xlim 和 YLim 的情况下使用它。至少看起来更好:-)
    猜你喜欢
    • 2013-02-19
    • 2019-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多