Как удалить метки Ytick, но сохранить метки Ytick?

Моя общая цель - изменить размер ТОЛЬКО отметок по оси x. Но из моих поисков кажется, что это довольно сложно.

Итак, я попытался изменить размер 'TickLength', а затем удалить галочки по оси Y. Однако мне все еще нужны метки оси Y. Любые предложения относительно того, как выполнить мою общую цель или второй подход? Спасибо.

Код графика:

set(gca, ...
  'Box'         , 'off'     , ...
  'TickLength'  , [.19 .19] , ...
  'XMinorTick'  , 'off'      , ...
  'YMinorTick'  , 'off'      , ...
  'YGrid'       , 'off'      , ...
  'Xgrid'       , 'off', ...
  'XColor'      , [.3 .3 .3], ...
  'YColor'      , [.3 .3 .3], ...
  'YTickLabel', int8([ylimits(1):ylimits(2)/3:ylimits(2)]), ...
  'YTick'       ,  []);

person makansij    schedule 10.02.2015    source источник
comment
какую версию матлаба вы используете?   -  person bla    schedule 10.02.2015
comment
stackoverflow.com/questions/9203282/   -  person Ratbert    schedule 10.02.2015
comment
Взгляните на мое обновление, решение довольно простое в настоящее время.   -  person thewaywewalk    schedule 15.11.2015


Ответы (2)



Обновлять

Обновление графического движка R2014b представило следующее гораздо более простое решение:

h = gca;
h.Box = 'off';
h.XRuler.TickLength = 50;
h.YRuler.TickLength = 0;

введите здесь описание изображения


Старый ответ

Единственный способ, который я могу придумать, - это продублировать ваш axes, сделать верхний прозрачным ('color','none'), а затем назначить ось x или y одному из объектов осей и отредактировать их независимо:

f = figure(1)

plot(0:10,0:10);

ax1 = gca;
ax2 = copyobj(ax1,f)
set(ax1, ...
  'Box'         , 'off'     , ...
  'TickLength'  , [.19 .19] , ...
  'XMinorTick'  , 'off'      , ...
  'YMinorTick'  , 'off'      , ...
  'YGrid'       , 'off'      , ...
  'Xgrid'       , 'off', ...
  'XColor'      , [.3 .3 .3], ...
  'YColor'      , [.3 .3 .3], ...
  'YTick'       ,  []);
set(ax2, ...
  'color'       , 'none', ...
  'Box'         , 'off'     , ...
  'TickLength'  , [.00 .00] , ...
  'XMinorTick'  , 'off'      , ...
  'YMinorTick'  , 'off'      , ...
  'YGrid'       , 'off'      , ...
  'Xgrid'       , 'off', ...
  'XColor'      , [.3 .3 .3], ...
  'YColor'      , [.3 .3 .3], ...
  'XTick'       ,  []);

введите здесь описание изображения

Если у вас возникнут проблемы при дальнейшем редактировании вашего сюжета, например. вещи не отображаются должным образом из-за двух объектов осей, вы можете связать свои оси:

linkaxes([ax1,ax2],'xy')
person thewaywewalk    schedule 10.02.2015

Вы можете установить свойство YTick как [], как в следующем примере:

figure; 
plot(1:100, 1:100);

ax = gca; 
ax.YTick = [];
ylabel('y label');

Этот код дает вам следующий результат: введите здесь описание изображения

person R.Falque    schedule 10.02.2015