MATLAB вращает метки xtick

Я не могу понять, как повернуть мои метки xtick на трехмерном графике. Кто-то ранее предложил:

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, но когда я это делаю, я просто получаю: Ошибка при использовании набора. Преобразование в двойное из ячейки невозможно. Ошибка в 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
Я хочу повернуть метки тиков, метку оси - person Ben; 31.07.2014
comment
файл позволит вам вращать метки тиков.. тогда вы можете повернуть метку оси самостоятельно.. - 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