MATLAB删除一个轴上的记号,同时保留标签



我想制作一个MATLAB绘图,它有刻度标签,但在x轴上没有刻度标记,但在y轴上有刻度标记。我该怎么做?

我不能使用

set(gca,'XTick',[])

因为这会删除勾号标签。我也不能使用

set(gca,'TickLength',[0 0])

因为这将去除y轴上的记号。

必须使用多个轴才能实现此效果,因为MATLAB没有为X轴和Y轴提供单独的TickLength属性。

示例:

x=linspace(0,4*pi);
y=sin(x);
ax=plotyy(x,y,0,0);
set(ax(1),'XTick',[]);
set(ax(1),'YColor',get(ax(1),'XColor'))
set(ax(2),'TickLength',[0 0]);
set(ax(2),'YTick',[]);

这有点麻烦,但它的工作原理是使用plotyy()函数中提供的额外y轴来保持x轴标签的刻度长度为0,同时仍然显示原始y轴的y刻度。

从MATLAB 2015b开始,您可以编写:

ax.XAxis.TickLength = [0,0];

并且仅X轴刻度长度减小到零。

最新更新