1

Я делаю несколько графиков в Matlab 2014b, на одном из них я рисую 5 переменных в зависимости от времени и хочу указать 5 названий, таких как скорость (рад / с), напряжение (В) и т.д. На Однако, как вы можете видеть на картинке, у меня появляется дополнительная пустая область слева, и я изо всех сил пытаюсь ее убрать.Образец рисунка

Вот рабочий код, просто чтобы объяснить ситуацию:

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 ответ1

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]; Вы меняете положение осей на рисунке, обозначенном ручкой 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 .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .