Matlab - Color de graficas 2-D

 
Vista:
sin imagen de perfil
Val: 13
Ha disminuido su posición en 2 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

Color de graficas 2-D

Publicado por Héctor (9 intervenciones) el 04/11/2016 18:19:56
¿Existe alguna forma en la que el color de una gráfica en 2-D cambie durante su recorrido?

Por ejemplo, tengo una curva que sube y baja constantemente, y quisiera que el recorrido de subida sea de un color, y el de bajada de otro. Debo especificar que la curva de la que hablo es resultado de un análisis previo de ciertos datos, por lo que no puedo graficarla por partes.

Saludos y gracias de antemano
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 Royeth
Val: 3.309
Plata
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Color de graficas 2-D

Publicado por Royeth (1818 intervenciones) el 04/11/2016 19:26:19
todas las gráficas de cualquier programa son discretizadas en puntos , ya sea muy pequeños pero todas estan conformadas por datos númericos , no sé si te refieras más bien a que el análisis previo de ciertos datos pueda variar y por lo tanto tu gráfica si la realizas por partes no servirá porque puede que otro análisis de otra cosa , eso es lo que logro entender , para cualquier caso puedes ayudarte del cálculo diferencial , obteniendo los puntos de inflección de los datos o de los puntos así :

1
2
3
4
yy=sign(diff(y))  ;
yy=horzcat(yy(1), yy); %aquí tendrías los cambios de signo solo restaría volver a derivar para sacar los puntos de inflexión
yy2=abs(diff(yy));
pii=find(yy2==2); %aquí te devuelve los puntos de inflexión 

luego solo debes graficar en los intervalos de tu punto de inflexión :

el primer dato hasta el punto de inflexión 1 , el punto de inflexión uno hasta el punto de inflexión dos , el punto de inflexión n hasta el punto de inflexiòn n+1 , por lo tanto puedes agregar :

1
2
3
4
5
6
pii=horzcat(1,pii,length(y));
a={'r','b'}; %aquí los colores
hold on
for i=1:length(pii)-1
plot(x(pii(i):pii(i+1)),y(pii(i):pii(i+1)),a{mod(i,2)+1})
end


y con este código tendrías la gráfica , aquí te dejo un ejemplo sencillo

1
2
3
4
5
6
7
8
9
10
11
12
x=1:7;
y=[2 5 3 1 2 4 5];
yy=sign(diff(y))  ;
yy=horzcat(yy(1), yy);
yy2=abs(diff(yy));
pii=find(yy2==2);
pii=horzcat(1,pii,length(y));
a={'r','b'}; %aquí los colores
hold on
for i=1:length(pii)-1
plot(x(pii(i):pii(i+1)),y(pii(i):pii(i+1)),a{mod(i,2)+1})
end

espero te sirva de ayuda






imagen
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
3
Comentar
sin imagen de perfil
Val: 13
Ha disminuido su posición en 2 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

Color de graficas 2-D

Publicado por Héctor (9 intervenciones) el 04/11/2016 20:35:43
¡Muchas gracias!

Es justo lo que necesitaba. Lo de los puntos de inflexión lo había considerado, pero no tenía claro como hacer para intercalar los colores. Pero con tu ayuda, quedó como quería

Saludos!

figure
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