Plots

Post on 13-Aug-2015

5 views 1 download

Transcript of Plots

Curso introductorio a Matlab

BrainlabNoviembre 2008

Contenidos del curso• Entorno Matlab.• Tipos de datos básicos.• Funciones y operaciones con arrays.• Notación “:” y array slice.• Operaciones lógicas.• Operaciones matemáticas.• Gráficos.• Miscelánea.• Ciclo de vida del software.• Tipos de datos.• Estructuras de control.• Descomposición funcional y diseño descendente.• Funciones.• Recursividad.• Debug.• Proyecto Final.

Matlab CLI

Programación en Matlab

plots(1)

• Un plot es una representación gráfica de los datos que nos permite echar un vistazo a los mismos de forma rápida.

• Hay varios tipos de plots: 2d, 3d, raster.• Para representar una función debemos

evaluar dicha función en varios puntos y trazar una línea que los una.

• Para crear una nueva ventana gráfica llamaremos a la función figure que nos devuelve el handle de la ventana.

plots(2)

• Para saber el handle actual llamaremos a gcf.• El número de puntos en los que evaluar la

función es importante:

• Podemos mostrar diferentes funciones/datos en la misma figura.

>> N = 10;>> x=0:1/N:1;>> y = sin(3*pi*x);>> plot(x,y)>> N=100;…

plots(3)

• Podemos poner títulos, anotaciones, cuadrícula y cambiar el estilo de línea.

• Podemos sobreescribir un plot encima de otro rellamando a la función plot, si queremos que las gráficas permanezcan juntas en la ventana gráfica habrá que llamar a hold on/hold off.

>> plot(x,y,’r-.’)>> title(‘grafico de y = sin(3pi x)')>> xlabel(‘eje x')>> ylabel(‘eje y')>> grid

plots(4)

• Podemos guardar a disco el plot o bien desde menú o bien con el comando print. Se pueden especificar varios formatos en el momento de escribir a disco.

• También podemos poner varios plots en una misma figura con el comando subplot.

>> print -djpeg100 fig1>> print -deps fig1

plots(5)

>> subplot(2,1,1)>> plot(t,y)>> subplot(2,1,2)>> plot(t,randn(1,101),'r')

0 1 2 3 4 5 6 7-1

-0.5

0

0.5

1

0 20 40 60 80 100 120-4

-2

0

2

4

plots(6)

• Podemos hacer un zoom sobre la imagen seleccionando el trozo de imagen que queremos visualizar, también podemos activarlo desde la interfaz gráfica.

• Se puede especificar el estilo de línea cuando invocamos a plot, el trazo el color y el marcador.

>> zoom

>> plot(t,y,':or');>> plot(t,y,':^g');

plots(7)

• Otra función que hace algo parecido es stem:

• Se pueden visualizar tanto los marcadores como las líneas:

>> t=0:.1:10;>> y = exp(-t);>> stem(t,y,'g:');

>> x = 0:pi/15:4*pi;>> y = exp(2*cos(x));>> plot(x,y,'-r',x,y,'ok')

plots(8)

• Un aspecto muy importante de la visualización son los ejes, la cota de referencia para interpretar los datos, la podemos consultar y cambiar.

>> x = 0:pi/15:4*pi;>> y = exp(2*cos(x));>> plot(x,y,'-r',x,y,'ok');>> axis([0 14 0 16]);>> axis([4 10 2 inf]);

plots(9)

• Otro aspecto a modificar son las etiquetas de las gráficas, podemos cambiar el valor por defecto que escribe el comando.>> t=-pi:2*pi/100:pi;>> y=sin(t);>> plot(t,y);>> xlabel('-\pi \leq \Theta \leq \pi');>> ylabel('sin(\Theta)');>> title('Plot of sin(\Theta)');>> set(gca,'XTickLabel',{'-pi','-pi/2','0','pi/2','pi'});>> set(gca,'XTick',-pi:pi/2:pi);>> set(gca,'XTickLabel',{'-pi','-pi/2','0','pi/2','pi'});

plots(10)

• También podemos fijar la relación de aspecto, que es el ratio entre la altura y la anchura del gráfico, por defecto tiene la misma que la relación de aspecto de la ventana.

>> axis normal>> axis square>> axis equal

plots(11)

• Hasta ahora hemos visualizado datos agrupados por tiempo, pero también podemos agrupar por otro concepto que no sea sensible de ser ordenado como el tiempo, ej: número de pymes por comunidad autónoma. Para ello usaremos los gráficos de barras.

>> x=[2 6 4 3 2 7 6];>> bar(x)>> x=[14 3 5;1 2 5];>> bar(x)

plots(12)

• Otro comando para imprimir gráficos de barras es bar3.

• Otro elemento gráfico son las barras apiladas.

>> x=[2 6 4 3 2 7 6];>> bar3(x)>> x=[14 3 5;1 2 5];>> bar3(x,’group’);

>> x=[14 3 5;1 2 5];>> bar(x,’stack’)

plots(13)

• Otro gráfica a tener en cuenta son las gráficas de área:

>> Y = [5 1 2 8 3 7 9 6 8 5 5 5 4 2 3];harea = area(Y)

plots(11)

• Gráficos en 3D, un ejemplo sencillo:

• La función surf tiene muchos parámetros para poder cambiar la visualización de la función.

>> Z = peaks(20);>> h = surf(Z);