Matlab - Etiquetas de los ejes

   
Vista:

Etiquetas de los ejes

Publicado por Lorena (37 intervenciones) el 14/02/2012 17:21:44
Hola gente, estoy teniendo un problema para poner las etiquetas en el eje y de mi gráfica.

Mi gráfica consiste en n líneas horizontales en función del tiempo. Por ello, en el eje x tengo unidades de tiempo. Pero en el eje y tengo que ir enumerando las líneas desde 1 hasta n, pero la línea 1 es la superior y la línea n es la más inferior. Es decir, que mis etiquetas tienen que ser números decrecientes. Este es el error que me arroja matlab, me dice que el orden debe ser creciente.

¿Hay alguna manera de etiquetar cada línea de la gráfica como yo quiero?

Agradezco cualquier aporte!

Lorena
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de JOSE JEREMIAS CABALLERO

Etiquetas de los ejes

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (3428 intervenciones) el 15/02/2012 05:29:57
1
x=linspace(1,10,9); plot(x,x), axis('ij')


Saludos.
JOSE JEREMIAS CABALLERO

Servicios de programacion matlab


Asesor de Proyectos con Matlab
programador en matlab
"Detalladar sus preguntas, para recibir respuestas acertadas"
jjcc94@hotmail.com
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Dave

Etiquetas de los ejes

Publicado por Dave correa.dave30@gmail.com (934 intervenciones) el 15/02/2012 05:32:44
Hola Lorena;

Una opción es que realices tu grafica en forma normal y luego modifiques las propiedades del eje x del grafico, especificamente debes cambiar la orientación de normal a inversa.

Espero que sea de alguna ayuda.

Saludos
Dave Correa
correa.dave30@gmail.com
Servicios de Programación Matlab
http://fismatlab.blogspot.com/
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Dave

Etiquetas de los ejes

Publicado por Dave correa.dave30@gmail.com (934 intervenciones) el 15/02/2012 15:36:55
Hola Lorena;

Aquí un ejemplo:

x=10*rand(1,10);
y=10*rand(1,10);

plot(x,y,':g')
set(gca,'xDir','reverse')

Espero que sea de alguna ayuda.

Saludos
Dave Correa
correa.dave30@gmail.com
Servicios de Programación Matlab
http://fismatlab.blogspot.com
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Etiquetas de los ejes

Publicado por Lorena (37 intervenciones) el 15/02/2012 16:00:02
Hola, primero gracias por las respuestas.

José. intenté poner las etiquetas como strings en lugar de como números, pero cuando uso el comando set(gca,'YTick',etiq_y);, me sale un error que me dice que tengo que usar números.

Dave, intenté usar las etiquetas en sentido creciente e invertir el eje y, pero aparentemente estoy haciendo algo mal al declarar las etiquetas, porque tampoco me las toma en sentido creciente. El código que estoy usando para ubicar las etiquetas y los límites de los ejes es el siguiente:


eje_x=[0 (long_muestras/Fs)];
eje_y=[(min(eeg_filt2(1:long_muestras,num_canales))-(num_canales*rango)) 0];

set(handles.axes1,'XLim',eje_x);
set(handles.axes1,'YLim',eje_y);

set(gca,'YTick',[1:1:num_canales]);
set(gca,'XTick',[0:1:(long_muestras/Fs)]);


Me toma las etiquetas del eje x, pero no las del eje y. ¿Dónde podrá estar el problema?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Dave

Etiquetas de los ejes

Publicado por Dave correa.dave30@gmail.com (934 intervenciones) el 15/02/2012 16:07:30
Hola Lorena;

Si deseas invertir los ejes X y Y, necesitas modificar las propiedades de ambos ejes.

Aquí un ejemplo:

1
2
3
4
5
x=10*rand(1,10);
y=10*rand(1,10);
 
plot(x,y,':g')
set(gca,'xDir','reverse','yDir','reverse')


Espero que sea de alguna ayuda.

Saludos
Dave Correa
correa.dave30@gmail.com
Servicios de Programación Matlab
http://fismatlab.blogspot.com
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Etiquetas de los ejes

Publicado por Lorena (37 intervenciones) el 15/02/2012 16:42:56
Hola Dave, la inversión de los ejes funcionó muy bien, sería una buena solución, pero en realidad donde estoy teniendo problemas es en que me tome las etiquetas del eje y. Estoy pensando que puede ser porque los límites que he seteado para el eje y son muy distintos a los valores de las etiquetas que le estoy dando, ¿Puede ser?

Gracias!

Lorena
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Etiquetas de los ejes

Publicado por Lorena (37 intervenciones) el 16/02/2012 20:17:21
Hola gente, les cuento que ya solucioné el problema, el código me quedó como sigue:


eje_x=[0 (long_muestras/Fs)];
eje_y=[(min(eeg_filt2(1:long_muestras,num_canales))-(num_canales*rango)) 0];

valor=num_canales;

y_label_num_ord=zeros(1,num_canales);

for i=1:num_canales
y_label_num_ord(1,i)=valor;
valor=valor-1;
end

y_label=num2str(y_label_num_ord');
y_etiq=linspace(min(eeg_filt2(1:long_muestras,num_canales))-(num_canales*rango),0,num_canales);


set(handles.axes1,'XLim',eje_x);
set(handles.axes1,'YLim',eje_y);

set(handles.axes1,'XTick',[0:1:(long_muestras/Fs)]);
set(handles.axes1,'Ytick',y_etiq);

set(handles.axes1,'XTickLabel',[0:1:(long_muestras/Fs)]);
set(handles.axes1,'YtickLabel',y_label);


Gracias por su ayuda Dave y José.


Lorena
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar