【问题标题】:labels on imagesc plot: why they are duplicated?imagesc 图上的标签:为什么它们被重复?
【发布时间】:2018-09-07 11:18:39
【问题描述】:

我尝试使用imagesc 制作带有标签的图,在刻度轴上带有标签,但我得到的标签数量是需要的两倍。我做错了什么?我尝试了 R2009B 和 R2017A。

下面是我的代码:

test_data = rand(5,5);
[RHO,PVAL_spearman] = corr(test_data,'Type','Spearman');
figure;
imagesc(RHO);
labelNames = {'item1','item2','item3','item4','item5'};
set(gca,'XTickLabel',labelNames);
set(gca,'YTickLabel',labelNames);

【问题讨论】:

  • 您已经指定了五个刻度标签,但您还没有对刻度本身做任何事情。如果您只使用imagesc(test_data),您会看到它实际上沿两个轴放置了 11 个刻度(从 0.5 到 5.5,间隔为 0.5)。如果您将最后两个命令替换为 set(gca,'Xtick',1:5,'XTickLabel',labelNames);,它应该看起来不错。
  • 如果下面的回答对你有帮助,请考虑采纳。没有义务这样做,但它会给你和回答者(我)一点声望,整个社区都会知道你不再需要帮助。

标签: matlab plot matlab-figure


【解决方案1】:

显然,图上的默认刻度数为 11,因此您只需使用 set(gca,'XTick',N) 属性更改刻度数:

N = 5;
test_data = rand(N);
[RHO,PVAL_spearman] = corr(test_data,'Type','Spearman');
figure;
imagesc(RHO);
labelNames = {'item1','item2','item3','item4','item5'};
set(gca,'XTick',1:N);
set(gca,'YTick',1:N);
set(gca,'XTickLabel',labelNames);
set(gca,'YTickLabel',labelNames);

当指定的标签名称少于 11 个时,MATLAB 会从第一个位置重新开始,直到它放置了 11 个标签,而当您提供​​的标签名称超过 11 个时,MATLAB 会忽略位置 11 之外的标签。

【讨论】:

    猜你喜欢
    • 2022-10-17
    • 2017-05-30
    • 1970-01-01
    • 1970-01-01
    • 2011-09-22
    • 1970-01-01
    • 2014-12-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多