我在 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.8
和0.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()
也比set
和get
方法更快。