Explicação do código

Explicação do código

Estou fazendo alguns gráficos no Matlab 2014b, em um deles estou plotando 5 variáveis ​​versus tempo ali e quero especificar 5 nomes como velocidade (rad/s), tensão (V), ... etc. rótulo y, no entanto, como você pode ver na imagem, estou obtendo espaço extra sem graça à esquerda e lutando para removê-lo.Figura de amostra

Aqui está um código funcional, apenas para explicar a situação:

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

Qualquer sugestão é muito apreciada antecipadamente.

Responder1

Você pode ajustar o posicionamento dos eixos na janela da figura da seguinte maneira (usando seu código de exemplo):

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

Explicação do código

Você ax = handle(gca);armazena o identificador dos eixos em uma variável axpara que possa alterá-lo posteriormente.

Em ax.Position [0.1, 0.15, 0.8, 0.75];você altera a posição dos eixos na figura referida pelo identificador ax. O exemplo acima define o ponto inferior esquerdo nas coordenadas 0.1, 0.15e uma largura e altura de 0.8e 0.75respectivamente. Essas coordenadas são normalizadas de acordo com o tamanho da sua figura.

Parcelas de exemplo

Situação inicial

Se você definir ax.Positioncomo [0.25, 0.15, 0.7, 0.75]você obterá algo como o que tinha inicialmente:

insira a descrição da imagem aqui

Solução

Se você definir ax.Positioncomo [0.1, 0.1, 0.85, 0.85]você obterá muito menos espaços em branco:

insira a descrição da imagem aqui

Notas

Este link de ajuda do MATLABexplica como você pode definir a posição dos eixos "automaticamente" para que haja um ajuste mais preciso.
Este link de ajuda do MATLAB sobre eixosexplica quais parâmetros estão disponíveis no objeto de eixos.
Esta resposta no Stackoverflowme ajudou a encontrar uma maneira de usar a notação de ponto nas versões do MATLAB anteriores a 2014b.Aparentementeusing handle()também é mais rápido que os métodos sete get.

informação relacionada