Estoy haciendo algunos gráficos en Matlab 2014b, en uno de ellos estoy trazando 5 variables versus el tiempo allí y quiero especificar 5 nombres como velocidad (rad/seg), voltaje (V), ... etc. Etiqueta y, sin embargo, como puede ver en la imagen, estoy obteniendo un espacio extra suave a la izquierda y estoy luchando por eliminarlo.
Aquí hay un código de trabajo, solo para explicar la situación:
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
Cualquier sugerencia es muy apreciada de antemano.
Respuesta1
Puede modificar la posición de los ejes en la ventana de la figura de la siguiente manera (usando su código de ejemplo):
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
Explicación del código.
En ax = handle(gca);
usted almacena el identificador de los ejes en una variable ax
para que pueda modificarlo más adelante.
En ax.Position [0.1, 0.15, 0.8, 0.75];
cambias la posición de los ejes en la figura referida por manija ax
. El ejemplo anterior establece el punto inferior izquierdo en las coordenadas 0.1, 0.15
y un ancho y alto de 0.8
y 0.75
respectivamente. Estas coordenadas están normalizadas según el tamaño de su figura.
Parcelas de ejemplo
Situación inicial
Si configura el ax.Position
para [0.25, 0.15, 0.7, 0.75]
obtendrá algo como lo que tenía inicialmente:
Solución
Si configura el ax.Position
para [0.1, 0.1, 0.85, 0.85]
obtendrá muchos menos espacios en blanco:
Notas
Este enlace de ayuda de MATLABexplica cómo se puede definir la posición de los ejes "automáticamente" de modo que haya un ajuste más ajustado.
Este enlace de ayuda de MATLAB sobre ejesexplica qué parámetros están disponibles en el objeto de ejes.
Esta respuesta en StackoverflowMe ayudó a encontrar una manera de utilizar la notación de puntos en versiones de MATLAB anteriores a 2014b.AparentementeEl uso handle()
también es más rápido que los métodos set
y get
.