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.
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 ax
para 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.15
e uma largura e altura de 0.8
e 0.75
respectivamente. Essas coordenadas são normalizadas de acordo com o tamanho da sua figura.
Parcelas de exemplo
Situação inicial
Se você definir ax.Position
como [0.25, 0.15, 0.7, 0.75]
você obterá algo como o que tinha inicialmente:
Solução
Se você definir ax.Position
como [0.1, 0.1, 0.85, 0.85]
você obterá muito menos espaços em branco:
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 set
e get
.