问题描述: Matlab画图的时候,有时候回出现X轴刻度显示不全的问题。
举例: 举例说明上述问题,示例Matlab代码如下,
% data
x = 0:10;
y1 = x;
y2 = 1/3.*x.*x;
% subplot1
subplot(1,3,[1,2]);
plot(x,y1)
% settings of subplot1
xlabel('x');
ylabel('y');
set(gca,'FontSize',20);
% subplot2
hold on;
subplot(1,3,3);
plot(x,y2)
% settings of subplot2
xlabel('x');
ylabel('y');
set(gca,'FontSize',20);
调试运行上述代码,发现生成的图存在X轴刻度显示不全的问题,该问题是由于X轴刻度显示在边框以下导致无法看全所致。如下图,
解决方案: 我们可以采用Matlab的set(gca,'Position',[left bottom right top]);
这一命令,通过调整图的上下左右相对于边框的位置 [1],使得X轴的刻度显示完全。
举例: 应用上述解决方案,示例Matlab代码如下,
% data
x = 0:10;
y1 = x;
y2 = 1/3.*x.*x;
% subplot1
subplot(1,3,[1,2]);
plot(x,y1)
% settings of subplot1
xlabel('x');
ylabel('y');
set(gca,'FontSize',20);
set(gca,'Position',[.1203 .189 .50 .74]);
% subplot2
hold on;
subplot(1,3,3);
plot(x,y2)
% settings of subplot2
xlabel('x');
ylabel('y');
set(gca,'FontSize',20);
set(gca,'Position',[.7603 .189 .200 .74]);
调试运行上述代码,发现该方案很好地解决问题。需要说明的是:该解决方案同样适用于Y轴刻度显示不全的问题。效果如下,
[1. 图和边框的相对位置] https://www.mathworks.com/matlabcentral/answers/5882-getting-the-axis-position-correctly