在xticks

时间:2015-11-06 14:56:24

标签: matlab plot labels

我想在刻度线之间放置标签,否则一些标签会相互重叠。

set(gca,'XTick',[66 98 134 215 266 330 334 388 414 443 ]);
set(gca,'XTickLabel',{'CD', 'CS', 'E' ,'F','H','I','C','IT','M','U'})

enter image description here

有人可以帮助我吗?

2 个答案:

答案 0 :(得分:0)

xTICKS = [66 98 134 215 266 330 334 388 414 443 ];
xTICKS = [0 xTICKS]; %// Add the 0 instance
dxT = diff(xTICKS);%// get differences
xT = xTICKS(1:end-1)+dxT/2; %// Make new tick locations midway the old

通过这种方式,您可以在旧实例中间创建tickmarks + ticklabels的位置。我不确定你是否可以解开这两个,试试这个:

set(gca,'XTick',xT);
set(gca,'XTickLabel',{'CD', 'CS', 'E' ,'F','H','I','C','IT','M','U'})

您可以使用axes properties,尤其是刻度值和标签部分,但我无法找到解开刻度位置的方法。 ;相应的标签。

答案 1 :(得分:0)

我经常遇到这个问题,但是有一个非常简单的解决方案......只需在前面用空格填充你的标签!不一定都是......只需要移动的那些。每当您需要对文本注释进行微调时(例如' arrow',' text'等),这是一个很棒的技巧。

示例:

set(gca,'XTickLabel',{'CD', 'CS', 'E' ,'F','H','I','  C','IT','M','U'})

编辑: 我意识到这并没有解决垂直滴答问题。对于Y轴,请尝试

set(gca,'YTickLabel',{'CD', 'CS', 'E' ,'F','H','I',['A' char(10) ' C'],'IT','M','U'})

请注意' A'和' C'从技术上讲,它们是同一标签的一部分,但由于插入换行符(char(10)),它们似乎是两个不同的标签。