curso de matlab-graficas

39
Gráficas 2D y 3D en MATLAB Elaborado Por: Víctor D. Acevedo Alvarado

Upload: nacho-avina

Post on 06-Dec-2015

254 views

Category:

Documents


0 download

DESCRIPTION

Graficos

TRANSCRIPT

Gráficas 2D y 3D en MATLAB

Elab

ora

do

Po

r: V

ícto

r D

. Ace

ved

o

Alv

arad

o

Gráficas 2D

• Para graficar una serie de puntos en MATLAB es necesario recurrir a la función plot().

plot(x,y,’r*’)

• En esta función los vectores x e y almacenan las coordenadas x e y correspondientes a los puntos a graficar.

• ‘r*’ se emplea para dar color (r es rojo) y el tipo de marcador a emplear en los puntos.

• Por ejemplo: Supóngase que se ha medido la distancia que un objeto recorre en ciertos tiempos. Si asignamos los valores del tiempo al vector X, y los valores de distancia en el vector y:

X = [0:2:18];

Y = [0, 0.33, 4.13, 6.29, 6.85, 11.19, 13.19, 13.96, 16.33, 18.17] ;

• Entonces para graficar se tendría que escribir:

plot(X,Y,’r*’)

• De este modo la gráfica quedaría de la siguiente forma

• Como vemos, la gráfica presenta los puntos pero carece de título, así como leyendas en los ejes.

• Para agregar estos detalles bastará con emplear las siguientes instrucciones:

title(‘Experimento 1’)

xlabel(‘Tiempo (seg)’)

ylabel(‘Distancia (ft)’)

• De este modo la gráfica se vería ahora como sigue.

• Si quisiéramos agregar una cuadrícula bastaría con escribir el comando

grid on

• Si queremos desactivar la cuadrícula de la gráfica bastará con escribir el comando

grid off

Gráficas múltiples 2D

• Al graficar, es posible que queramos crear múltiples gráficas. Al hacerlo en MATLAB es posible llevar a cabo esto mediante 3 técnicas:

• Graficar individualmente en ventanas separadas.

• Graficar individualmente en una misma ventana.

• Graficar dos (o más) curvas en una misma ventana.

Graficar individualmente en ventanas separadas • Si queremos presentar varias gráficas en ventanas

separadas bastará con emplear el comando figure. Este comando se emplea parea abrir una nueva ventana para crear gráficas.

• Una vez abierta esta nueva ventana podemos indicar que trabajaremos con esta escribiendo

figure(n)

• En este caso n indica el número de la ventana con la que trabajaremos. Por ejemplo, al teclear figure(4) en la ventana de comandos, aparecerá una ventana. Si observamos el título de esta en la parte superior de la ventana, podemos ver lo siguiente:

• Al ya indicar la ventana con la cual trabajaremos, el procedimiento es igual al ya mencionado al principio.

• Por ejemplo, si graficáramos los datos del primer ejemplo en la ventana cuatro y en lugar de usar * como marcador trazáramos una línea recta azul mediante ‘-b’, las gráficas se verían como a continuación.

Graficar individualmente en una misma ventanas • Es posible que en lugar de requerir gráficas en

diferentes ventanas, nosotros necesitemos presentar varias gráficas individuales que se vean en una misma ventana a fin de poder comparar. Para poder llevarlo a cabo es necesario emplear:

figure

subplot(m,n,p)

• subplot creará en la nueva ventana, una serie de gráficas en m filas y n columnas. Aquí p indicará la gráfica en la que queremos colocar nuestro gráfico dentro de la ventana.

• Por ejemplo, supongamos que necesitamos mostrar varios registros geofísicos en gráficos individuales, pero que estén en una misma gráfica, en este caso, para colocar el primer registro en la primer grafica se escribe:

subplot(1,3,1)

• Una vez escrito subplot, continuamos con plot, y posteriormente personalizamos la gráfica. Al terminar con la primera volvemos a escribir subplot, cambiando el valor de p, es decir, para la segunda gráfica escribimos

subplot(1,3,2)

• Los pasos se repiten hasta que hayamos terminado.

• El resultado en este ejercicio se vería como sigue:

Graficar en una misma ventana

• A veces, por múltiples razones es necesario presentar dos gráficas en la misma ventana, por ejemplo, supóngase que se realiza el cálculo de las correlaciones de Faust y Smith para completar un registro de tránsito de tiempo, si se quisiera evaluar la aproximación de ambas gráficas contra el registro original bastaría con llevar a cabo una de dos maneras:

• La primera sería usar

plot(Dtx,Dty,’b-’,Fx,Fy,’g-’,Sx,Sy,’r-’)

• De este modo, la función plot permite graficar múltiples gráficas es una sola instrucción especificando las coordenadas X e Y para cada gráfica así como sus correspondientes colores y tipos de línea. Una vez hecho esto bastará con agregar las etiquetas y títulos.

• Si bien, hasta ahora, la gráfica posee una buena presentación, sólo nosotros conocemos cual línea pertenece a cual gráfica.

• En este caso un comando útil es legend. Mediante legend podemos especificar un nombre que se asociará con cada línea. Así para este ejemplo, escribiriamos:

legend(‘DT’,’Faust’,Smith’)

• Automáticamente MATLAB asociará la primer curva graficada con ‘DT’, la segunda con ‘Faust’ y la tercera con ‘Smith’. Por lo tanto la gráfica se verá como:

• Supongamos ahora que en el ejemplo anterior se ha graficado únicamente en principio la gráfica de DT, si quisiéramos agregar las otras dos gráficas después, requeriríamos emplear el comando hold on, y graficar las otras dos, es decir:

plot(Dtx,Dty,’-b’)

hold on

plot(Fx,Fy,’-g’, Sx,Sy,’-r’)

• O bien

plot(Dtx,Dty,’-b’)

hold on

plot(Fx,Fy,’-g’)

hold on

plot(Sx,Sy,’-r’)

• Con ambos métodos obtendríamos la gráfica de las tres curvas que ya vimos.

Otras gráficas

• MATLAB permite la creación de algunos otros tipos de gráficas por ejemplo,

polar(theta,r)

• Permite la creación de gráficos en coordenadas polares, ya sea para escalares o vectores. Por ejemplo, si tenemos:

theta = 0:pi/100:pi; r = sin(X);

polar(theta,r)

• Obtendremos la gráfica

• Otras gráficas útiles son semilogx(), semilogy() y loglog; las cuales permite graficar como si usáramos un papel semilogaritmico. Su sintaxís es igual a la de plot.

• MATLAB también posee funciones especiales como bar(x),barh(x),pie(x), hist(x), que permiten crear gráficos de barras, de pastel e histogramas a partir de los datos del vector x.

Gráficas de funciones

• Ya que MATLAB es un software que soporta matemática simbólica, MATLAB cuenta con una herramienta para graficar funciones a partir de su dominio, sin necesidad de tener que calcular los valores de los vectores, para ello empleamos la función

fplot(‘funcion’,[a,b])

• a y b son los límites del intervalo que representa el dominio de la función o el intervalo en que queremos graficar la función.

• Por ejemplo para

fplot(‘sin(x)’,[-2*pi,2*pi]

• La gráfica sería:

Gráficas 3D

• En muchas ocasiones es necesario crear gráficas en 3D que presenten diferentes formas, tales como superficies, curvas de nivel, líneas, entre otros.

• Tomemos por ejemplo el caso en que necesitemos dibujar un resorte tridimensional definido por los siguientes vectores:

X = linspace(0,10*pi,1000);

Y = cos(X); Z = sin(X);

• Para obtener su gráfica tridimensional empleamos la función

plot3(X,Y,Z)

• Esta función es análoga a la función plot empleada en las gráficas 2D. Para agregar la etiqueta del eje z bastará con emplear zlabel así como lo hicimos con las etiquetas de x e y.

• Para este caso la gráfica se vería como:

Mallas y superficies

• Otras funciones importantes en MATLAB son las funciones mesh(z) y surf(z).

• La función mesh(z) permite construir una malla 3D a partir de la matriz z como entrada.

• La función surf(z) permite construir gráficas similares a mesh, sin embargo en lugar de generar un mallado, surf crea una superficie.

• En las siguientes figuras se presentan los ejemplos de ambos tipos de gráficas.

Gráfica empleando mesh(z) Gráfica empleando suf(z)

EJERCICIOS

Ejercicio 1

• Emplee las funciones subplot y plot para crear un programa en el cuál se presenten las gráficas correspondientes a las funciones trigonométricas seno, coseno y tangente. Agregue sus títulos y ejes correspondientes. La figura debe verse como a continuación.

Ejercicio 2

• Mediante el empleo de la función fplot, cree un programa para crear la gráfica de una función que desee, personalice los ejes, agregue el título que desee.

ANEXOS

Opciones de línea, marca y color para plot()

Tipo de línea Indicador Tipo de punto Indicador Color Indicador

Sólida - Punto . Azul b

Punteada : Círculo o Verde g

Raya-punto -. Marca x x Rojo r

Rayada -- Más + Cian c

Estrella * Magenta m

Cuadrado s Amarillo y

Diamante d Negro k

Triángulo abajo v

Triángulo arriba ^

Triángulo izquierda

<

Triángulo derecha

>

Pentagrama p

Hexagrama h

Referencias

• Moore, Holly. MATLAB para ingenieros. Pearson Educación. México.2007