如何删除 X 刻度线但保留刻度线标签?
How to remove Ytick marks but keep Ytick labels?
我的总体目标是仅更改 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' , []);
您可以将 YTick
的 属性 设置为 []
,如下例所示:
figure;
plot(1:100, 1:100);
ax = gca;
ax.YTick = [];
ylabel('y label');
这段代码给你这个结果:
更新
图形引擎的 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' , []);
如果您在进一步编辑绘图时遇到问题,例如由于两个坐标轴对象,事情无法正确显示,您可以 link 您的坐标轴:
linkaxes([ax1,ax2],'xy')
我的总体目标是仅更改 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' , []);
您可以将 YTick
的 属性 设置为 []
,如下例所示:
figure;
plot(1:100, 1:100);
ax = gca;
ax.YTick = [];
ylabel('y label');
这段代码给你这个结果:
更新
图形引擎的 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' , []);
如果您在进一步编辑绘图时遇到问题,例如由于两个坐标轴对象,事情无法正确显示,您可以 link 您的坐标轴:
linkaxes([ax1,ax2],'xy')