MATLAB завъртане на xtick етикети

Не мога да разбера как да завъртя моите xtick етикети в 3D графика. Някой преди това предложи:

set(get(gca,'xlabel'), 'Rotation',90)

Но когато правя това, нищо не се променя.

Целият код е:

width = 0.7
zheight = 500
set(0,'DefaultAxesLineStyleOrder',{'-*',':','o'})

d=bar3(a,x,width)
set(gcf,'color','w');
zlim([0 zheight])

set(gca,'FontSize',14 ,'FontWeight','bold')
set(gca, 'YTick',1:8, 'YTickLabel',{'1','2','4','8','12','16','20','24'})
set(gca, 'XTick',1:7, 'XTickLabel',{'a' 'b' c' 'd' 'e','f','g'})
set(get(gca,'xlabel'),'rotation',90)

person Ben    schedule 30.07.2014    source източник
comment
Мисля, че искам xticlabel, а не xlabel, но когато го направя, просто получавам: Грешка при използване на set Conversion to double from cell is not possible. Грешка в comp_cost (ред 13) set(get(gca,'XTickLabel'),'rotation',80)   -  person Ben    schedule 31.07.2014
comment
Може би това може да помогне: mathworks.com/matlabcentral/answers/   -  person Luis Mendo    schedule 31.07.2014
comment
ето FEX подаване: mathworks.com/matlabcentral/fileexchange/3486-xticklabel- завъртане (има много други)   -  person Amro    schedule 31.07.2014
comment
@Amro Ако използвам това, какво да добавя към моя скрипт? Всеки път, когато се опитам да извикам функция като тази, просто получавам грешки, вероятно поради това, че изпълнявам функцията неправилно   -  person Ben    schedule 31.07.2014
comment
Например, ако добавя xticklabel_rotate(XTick,rot,varargin), получавам: Недефинирана функция или променлива „XTick“.   -  person Ben    schedule 31.07.2014
comment
@JacksonHart - Има пример на тази FEX страница, който ви казва как да го стартирате. Примерът е: xticklabel_rotate([1:5],45,{'label_1','label_2','label_3','label_4','label_5'},'interpreter','none'). Първият параметър, който предполагам, са местоположенията на всяка отметка. В този случай всяка отметка върви от 1 до 5. Ще трябва да промените това, за да приспособите къде точно са разположени вашите отметки по оста x. Вторият аргумент е ъгълът, под който искате да завъртите всеки етикет, а третият елемент е клетъчен масив от етикети, където всеки клетъчен елемент е етикетът, който искате за всяка отметка.   -  person rayryeng    schedule 31.07.2014
comment
@rayryeng Когато направя това, получавам: Неочакван MATLAB оператор. и го копирах дословно, така че може би нещо липсва.   -  person Ben    schedule 31.07.2014
comment
Къде се случва неочакваният оператор MATLAB? Командният ред ще ви каже точното местоположение   -  person rayryeng    schedule 31.07.2014
comment
@rayryeng в реда, че добавих кода, който предложихте   -  person Ben    schedule 31.07.2014


Отговори (3)


Можете да използвате тези Въртящи се етикети на оста X

Пример:

rotateXLabels( xlabel, 45 )
person lakesh    schedule 30.07.2014
comment
Искам да завъртя tic етикетите, етикета на оста - person Ben; 31.07.2014
comment
файлът ще ви позволи да завъртите tic етикетите.. след това можете сами да завъртите етикета на оста.. - person lakesh; 31.07.2014

От matlab версия R2014b това е вградено в matlab. (Както е отбелязано в пакета rotateXLabels от отговора на @lakesh)

Можете да завъртите етикетите:

set(gca, 'XTickLabelRotation', 90)
person mjeppesen    schedule 24.02.2016

Започвайки от R2016b можете да направите:

xtickangle(angle)
person Roman Byshko    schedule 06.09.2017