Я создаю несколько графиков в Matlab 2014b, на одном из них я рисую графики зависимости 5 переменных от времени и хочу указать 5 имен, например, скорость (рад/сек), напряжение (В) и т. д. на метке Y. Однако, как вы можете видеть на рисунке, слева появляется лишнее пустое пространство, и мне сложно его удалить.
Вот рабочий код, просто чтобы объяснить ситуацию:
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помогло мне найти способ использования точечной записи в версиях MATLAB до 2014b.Видимоиспользование handle()
также быстрее, чем методы set
и get
.