如何删除Ytick标记但保留Ytick标签?

时间:2015-02-10 08:49:50

标签: matlab plot

我的总体目标是仅改变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'       ,  []);

2 个答案:

答案 0 :(得分:1)


更新

图形引擎的R2014b更新引入了以下更简单的解决方案:

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

enter image description here


旧答案

我能想到的唯一方法是复制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'       ,  []);

enter image description here

如果在进一步编辑绘图时遇到麻烦,例如由于两个轴对象,事物无法正确显示,您可以链接轴:

linkaxes([ax1,ax2],'xy')

答案 1 :(得分:0)

您可以将YTick的属性设置为[],如下例所示:

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

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

此代码为您提供以下结果: enter image description here