调用plotyy
你创建两个axis
对象。您的重叠问题可能来自这样一个事实:您只修改了一组轴,而将另一组保留为最初设置。
一种选择是在您调用时处理两个创建的轴plotyy
:
[AX, H1, H2] = plotyy( time, xvalue, time, dens);
您的第一个选项是设置两个轴,包含在 handlers 数组中AX
,通过将属性更改'XTick'
为:
set( AX(1), 'XTick', time(labs), 'XTickLabel', time(labs));
set( AX(2), 'XTick', time(labs), 'XTickLabel', time(labs));
但是您也可以选择将第二个轴的标签留空,替换上面的第二行:
set( AX(1), 'XTick', time(labs), 'XTickLabel', time(labs));
set( AX(2), 'XTick', time(labs), 'XTickLabel', []);
plotyy和Using Multiple X-and Y-Axes的官方文档可以为您提供进一步的帮助。
如果您看一下那里的示例,即plotyy文档:
figure
x = 0:0.01:20;
y1 = 200*exp(-0.05*x).*sin(x);
y2 = 0.8*exp(-0.5*x).*sin(10*x);
[AX,H1,H2] = plotyy(x,y1,x,y2,'plot');
和你之前做的一样,试着只修改AX(2)
,这相当于你写的gca
:
set(AX(2),'XtickLabel',1:0.1:20)
您会观察到发生了相同的重叠错误。
关于将标签旋转 90 度,恐怕 Matlab 目前不支持。但是,您可能可以使用 FileExchange 上的可用软件包之一完成此操作。xticklabelrotate或Rotate Tick Label可能是其中之一。