为什么matlab会跳过标签的下半部分?

时间:2016-09-20 13:36:19

标签: matlab matlab-figure figure

这是一个非常直观的代码,用于使用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'})

enter image description here

我正在使用Ubuntu 16.04和Matlab 2016b。

3 个答案:

答案 0 :(得分:7)

您设置标签文本,但不设置位置,因此它会自动放置标签位置,然后替换其文本。

要设置标签的位置,请先执行以下操作:

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

然后,无论你做什么,你都可以写下这些标签:

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

答案 1 :(得分:3)

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

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创建了一个新的图形系统。您可以直接将图形作为对象访问,而不是在任何地方使用setget

答案 2 :(得分:1)

您可以对此进行测试:enter image description here

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