在Matlab图中,我想仅从顶部和右侧轴中删除刻度线,同时保持绘图框。
我知道如果关闭绘图框,顶部和右侧的刻度线将消失。但是,这不是我想要的。换句话说,我想保留底部和左侧的刻度线,并同时保持绘图框。
我知道如果关闭绘图框,顶部和右侧的刻度线将消失。但是,这不是我想要的。换句话说,我想保留底部和左侧的刻度线,并同时保持绘图框。
我的解决方法类似于@j_kubik的建议:
plot(1:10)
% get handle to current axes
a = gca;
% set box property to off and remove background color
set(a,'box','off','color','none')
% create new, empty axes with box but without ticks
b = axes('Position',get(a,'Position'),'box','on','xtick',[],'ytick',[]);
% set original axes as active
axes(a)
% link axes in case of zooming
linkaxes([a b])
linkprop
替换linkaxes
。 - Carl Witthoftlinkaxes
在2014年及以后仍然有效。调用linkprop([a b])
会导致错误。 - Delyle现在是2022年,如果有人仍然对除了盒子选项以外的快速解决方案感兴趣,这是我的答案:
figure
plot(1:10) ;
ax = gca ;
ax.Box = 'off' ;
xline(ax.XLim(2),'-k', 'linewidth',ax.LineWidth);
yline(ax.YLim(1),'-k', 'linewidth',ax.LineWidth);
box off
命令去除刻度线,然后再使用plot命令绘制回箱子。例如:figure
hold on
box off
plot(1:10)
plot([1,10],[10, 10],'k')
plot([10,10],[1,10],'k')
box off
。然后将第二个轴的 x 轴移动到顶部,删除刻度和轴标签,这样就可以完美地关闭图像了。 - j_kubik