代码解释

代码解释

我在 Matlab 2014b 中绘制一些图表,在其中一个图表中,我绘制了 5 个变量与时间的关系,并想在 y 标签上指定 5 个名称,如速度(rad/sec)、电压(V)... 等。但是,正如您在图片中看到的那样,我在左侧得到了额外的空白,并且很难将其删除。示例图

这是一个有效的代码,只是为了解释一下情况:

clear all; clc; close all;
x = rand(8,1);
y = rand(8,1);

figure
plot(x,y)
xlabel('time (s)')
ylabel('$x$ (m), $\theta$ (rad), $\dot{x}$ (m/s),$\dot{\theta}$ (rad/s), $\dot{S}_{gen}$(W/K)','Interpreter', 'latex','fontsize',10)
grid

非常感谢您的任何建议。

答案1

您可以按如下方式调整图形窗口中轴的位置(使用示例代码):

clear all; clc; close all;
x = rand(8,1);
y = rand(8,1);

figure;
ax = handle(gca);
ax.Position = [0.1, 0.15, 0.8, 0.75];
plot(x,y)
xlabel('time (s)')
ylabel('$x$ (m), $\theta$ (rad), $\dot{x}$ (m/s),$\dot{\theta}$ (rad/s), $\dot{S}_{gen}$(W/K)','Interpreter', 'latex','fontsize',10)
grid

代码解释

ax = handle(gca);轴句柄存储在变量中ax,以便以后可以更改它。

您可以ax.Position [0.1, 0.15, 0.8, 0.75];通过 handle 更改图形中轴的位置ax。上例将左下角的点设置为坐标0.1, 0.15,宽度和高度分别为0.80.75。这些坐标根据您的图形大小进行标准化。

示例图

初始情况

如果你将其设置ax.Position为,[0.25, 0.15, 0.7, 0.75]你就会得到类似于最初的结果:

在此处输入图片描述

解决方案

如果设置为,ax.Position则会[0.1, 0.1, 0.85, 0.85]获得更少的空白:

在此处输入图片描述

笔记

此 MATLAB 帮助链接解释如何“自动”定义轴的位置以实现更紧密的配合。
此 MATLAB 帮助链接关于轴解释轴对象中可用的参数。
Stackoverflow 上的这个答案帮助我找到了在 2014b 之前的 MATLAB 版本中使用点符号的方法。显然使用handle()也比setget方法更快。

相关内容