Matlab - Doble eje y usando axes o plotyy

 
Vista:

Doble eje y usando axes o plotyy

Publicado por gabriela flores (14 intervenciones) el 22/11/2015 06:49:21
Hola

Necesito hacer un gráfico con dos ejes y y un eje x compartido.

Pero no me sirve plotyy porque cuando modifico los límites del eje x o modifico las marcas del eje x, se hace un desorden en que se sobreponen las marcas automaticas de matlab con las que yo le pido. Además muchas veces necesito tener en el eje tiempo en formato datenum, y con plotyy la funcion datetick no me funciona.

Por otra parte cuando hago gráficos para pdf, suelo usar el comando axes y pensaba que si sobreponia los gráficos de manera exacta, pero colocando el eje y a la derecha en el segundo gráfico me resultaría, pero al parecer cometo un error porque el eje sigue en el mismo lugar y la nueva gráfica oculta a la antigua.

Aquí abajo les pego un ejemplo de ambos códigos a ver si con alguno me pueden ayudar.

De antemano gracias

--------------------------------------------------------------------------------
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
%USANDO AXES: (me queda el eje y a la izquierda aun cuando trato de cambiarlo y el plot de abajo queda oculto %por el de arriba)
 
clear
clc
close all
%----------INPUT-------------
PosicionX=0.2;
PosicionY=0.5;
AnchoAxis=0.3;
AltoAxis=0.3;
X=datenum(2012,1,1):datenum(0,0,0,1,0,0):datenum(2012,1,2);
Y1=1:1:25;
Y2=Y1*1000+500;
%---------CODIGO-------------------
axes('Position',[PosicionX,PosicionY,...
     AnchoAxis,AltoAxis],...
     'YAxisLocation','left')
plot(X,Y1,'r-')
 
axes('Position',[PosicionX,PosicionY,...
     AnchoAxis,AltoAxis],...
     'YAxisLocation','right')
 plot(X,Y2,'b-')
 
%--------------------------------------------------------------------
 
%USANDO PLOTYY (El eje X queda un desorden de marcas automaticas y las que necesito yo)
 
clear
clc
close all
%----------INPUT-------------
PosicionX=0.2;
PosicionY=0.5;
AnchoAxis=0.3;
AltoAxis=0.3;
X=datenum(2012,1,1):datenum(0,0,0,1,0,0):datenum(2012,1,2);
Y1=1:1:25;
Y2=Y1*1000+500;
%---------CODIGO-------------------
axes('Position',[PosicionX,PosicionY,...
     AnchoAxis,AltoAxis],...
     'YAxisLocation','left')
plot(X,Y1,'r-')
 
axes('Position',[PosicionX,PosicionY,...
     AnchoAxis,AltoAxis],...
     'YAxisLocation','right')
 plot(X,Y2,'b-')
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