You are on page 1of 7

Grficos en Matlab

La Esttica de los Grficos Ms de un Grfico en una ventana (Subplot) Cambiando los ejes Agregar Texto
Una de las funciones ms importantes en Matlab es la funcin plot . Plot tambin parece ser una de las ms sencillas funciones para aprender a usar. La sintaxis bsica de la funcin es escribir el siguiente comando en la ventana de comandos del Matlab o en un archivo-m.
plot(x,y)

Este comando plotear los elementos del vector x en el eje horizontal de una figura, y los elementos del vector y en el eje vertical de la figura. Por defecto, cada vez que se use el comando plot , se borrar la figura que estaba, quedando solo la nueva; discutiremos cmo forzar esto ms abajo. Si quisiramos graficar la sencilla frmula lineal:
y=3x

Deberamos crear un archivo-m con las siguientes lneas de cdigo:


x = 0:0.1:100; y = 3*x; plot(x,y)

lo que generar la figura siguiente,

Una cosa a tener en cuenta cuando se usa el comando plot es que los vectores x e y deben ser la misma longitud. La otra dimensin puede variar. Matlab puede graficar un vector 1 x n versus un vector n x 1, un vector 1 x n versus una matriz 2 x n , (obtendr dos lneas), el largo n es el mismo para ambos vectores. El comando plot puede tambin usarse con solamente un vector como entrada o parmetro. En ese caso las columnas del vector se grafican versus sus ndices (el vector 1:1:n se usar para el eje horizontal). Si el vector de entrada contiene nmeros complejos, Matlab dibuja la parte real de cada elemento (en el eje x) versus la parte imaginaria (en el eje y).

La Esttica de los Grficos


El color y el marcador de un grfico se pueden cambiar agregando un tercer parmetro (entre apstrofo 'esto') al comando plot . por ejemplo, para graficar la funcin de arriba con una lnea punteada roja , debera cambiarse el archivo-m a:
x = 0:0.1:100; y = 3*x; plot(x,y,'r:')

Ahora el grfico se ve:

La tercera entrada consiste de uno a tres caracteres que especifican un color y/o o un tipo de marcador. La lista de colores y marcadores es como sigue:
y amarillo . punto m violeta o circulo c celeste x cruz x r rojo + suma g verde - solido b azul * estrella w blanco : punteado k negro -. punto y raya -- a trazos

Se puede graficar ms de una funcin en la misma figura. Digamos que quisiera graficarlas ondas seno y coseno en el mismo conjunto de ejes, usando diferentes colores y marcadores para cada una. Puede usarse el siguiente archivo-m para lograrlo:
x = linspace(0,2*pi,50); y = sin(x); z = cos(x); plot(x,y,'r', x,z,'gx')

Obtendr la figura siguiente de las ondas seno y coseno, con el seno en rojo slido y el coseno en verde con cruces:

Agregando ms juegos de parmetros al comando plot , puede graficar tantas funciones en la misma figura como se quiera . Cuando plotea muchas cosas en el mismo grfico es til diferenciar las diferentes funciones mediante color y marcadores. Puede lograrse el mismo efecto usando los comandos hold on y hold off . Una figura como la que se muestra abajo puede generarse mediante el siguiente archivo-m:
x = linspace(0,2*pi,50); y = sin(x); plot(x,y,'r') z = cos(x); hold on plot(x,z,'gx') hold off

Recuerde que siempre que use el comando hold on, todas las figuras sern generadas en un conjunto de ejes, sin borrarse la figura anterior, hasta que se aplique el comando hold off .

Ms de un Grfico en una ventana (Subplot)


En una misma figura puede ponerse ms de una lnea empleando el comando subplot. El comando subplot le permite separar la figura en tantas figuras como se quiera , y ponerlas todas en una figura. Para usar este comando, Copie la siguiente lnea de cdigo e insrtela en la ventana de comandos del Matlab o en un archivo-m:
subplot(m,n,p)

Este comando divide la figura en una matriz de m renglones y n columnas, por lo tanto crea mxn grficos en una figura. TEl p-simo grfico es seleccionado como el grfico activo (solo hay uno a la vez por figura). Por ejemplo, suponga quisiera ver una senoide, un coseno , y una onda tangente graficadas en la misma figura, pero no en los mismos ejes. El siguiente archivo-m lo har:
x = linspace(0,2*pi,50); y = sin(x); z = cos(x); w = tan(x);

subplot(2,2,1) plot(x,y) subplot(2,2,2) plot(x,z) subplot(2,2,3) plot(x,w)

como puede ver, habr solo tres grficos , a pesar de haber creado una matriz de 2 x 2 , de 4 subplots. No tiene porqu rellenar todas las subfiguras que ha creado, pero Matlab dejar un lugar para cada figura en la matriz. Pudo haber hecho sencillamente otro grfico mediante la lnea subplot(2,2,4) . Las subplots se ordenan de la misma manera como se lee un libro. La primera subplot est arriba a la izquierda, la siguiente est a su derecha. Cuando todas las columnas de ese rengln estn ocupadas, se rellena la columna de la izquierda del prximo rengln de abajo (asumiendo que genera los subplots en el orden 1, 2, 3,..). Una cosa a notar acerca del comando subplot es que cada comando plot ejecutado despus ubicar la figura en la ltima posicin que se especific en el ltimo comando subplot, borrando la figura que haba . Por ejemplo, en el archivo-m previo, si se emitiera un comando plot ms tarde en el mismo, ste se graficar en la en la tercera posicin en la ventana grfica, borrando la lnea de la tangente. Para resolver este problema, la figura debera ser borrada (usando clf), o debera especificarse una nueva figura (mediante el comando figure).

Cambiando los ejes


Ahora que ha encontrado diversos modos de graficar funciones, puede personalizar sus ploteos para lograr lo que desea. El modo ms frecuente de hacerlo es mediante el comando axis. El comando axis cambia los ejes del diagrama actual, de modo que se muestra slo la parte del eje que se desea. El comando axis se usa ingresando el siguiente comando justo despus del comando plot (o cualquier comando que tiene un plot como una de sus salidas):
axis([xmin, xmax, ymin, ymax])

Por ejemplo, suponga querer ver un grfico de la funcin y=exp(5t)-1. Si entra lo siguiente al Matlab
t=0:0.01:5; y=exp(5*t)-1; plot(t,y)

debera tener la figura siguiente:

Como puede ver, el grfico tiende a infinito. Atendiendo al eje y (escala: 8e10), es claro que no puede verse mucho en este grfico. Para tener una mejor idea de lo que est pasando en el ploteo, miremos el primer segundo de esta funcin. Escriba el siguiente comando en la ventana de comandos del Matlab.
axis([0, 1, 0, 50])

y debera obtener la figura siguiente:

Ahora esta figura es mucho ms valiosa. Puede verse ms claro lo que pasa cuando la funcin va hacia infinito. Puede personalizarse los ejes a sus necesidades. Cuando se usa el comando subplot, pueden cambiarse los ejes de cada subplot emitiendo un comando axis antes del prximo comando subplot. Hay ms usos del comando axis que puede ver si tipea help axis en la ventana de comandos del Matlab.

Agregar Texto
Otra cosa que puede ser importante en sus grficos es el etiquetado. Puede darle un ttulo al grfico (con el comando title), etiqueta al eje x (con el comando xlabel), o al eje y (con el comando ylabel), as como incluir texto en la figura presente. Todos los comandos mencionados se emiten luego de ejecutarse el comando plot actual. Se ubicar un ttulo, centrado, por encima del grfico con el comando: title('cadena de ttulo'). La etiqueta al eje x se agrega con el comando siguiente: xlabel('cadena para el eje x'). La etiqueta del eje y se emite con el siguiente comando: ylabel('cadena para el eje y'). Ms an, puede incorporarse texto en el mismo grfico de dos maneras: el comando text y el comando gtext. El primer comando requiere conocer las coordenadas donde quiere ubicar la cadena de texto. El comando es text(xcor,ycor,'textstring'). Para usar el otro comando, no necesita saber las coordenadas exactas. El comando es gtext('textstring'), y entonces slo mueva la mira en cruz al lugar deseado con el mouse, y haga clic en la posicin que quiere que se inserte el texto. Para mostrarle mejor cmo usar el etiquetado, tome el grfico de la respuesta al escaln de arriba. Asumiendo que ya ha cambiado los ejes, copiando las lneas siguientes luego del comando axis, se tendr todas las etiquetas puestas en el grfico:
title('respuesta al escaln de algo') xlabel('tiempo (seg.)') ylabel('posicin, velocidad, o algo as') gtext('etiqueta innecesaria')

El texto "etiqueta innecesaria" se ubic a la derecha por encima de la posicin donde se hace clic. La figura debera verse as:

Otros comandos que pueden usarse con el comando plot son:

clf (borra el grfico actual, lo deja en blanco) figure (abre una nueva ventana figure para graficar,

y se preserva la figura

previa) close (cierra la ventana de la figura actual) loglog (igual que plot, excepto que ambos ejes se escalan en Log10) semilogx (igual que plot, excepto que el eje x se escala en Log10) semilogy (igual que plot, excepto que el eje y se escala en Log10) grid (agrega una grilla al grfico) Est claro que sta no es un curso completo para graficar con Matlab, pero le debera dar un buen comienzo.