Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Objetivo:
El objetivo de este taller es explorar todas las herramientas graficas que ofrece
Matlab.
Procedimiento:
2. Manejo de gráficas.
En Matlab se puede controlar la forma como se muestran los datos o se pueden desarrollar
comandos gráficos personalizados. Debido a que Matlab es un sistema de gráficas orientadas
por objetos, se tienen un conjunto de éstos: líneas, superficies y texto; además de poseer el
manejo de sus características. El manejo gráfico se puede llevar a cabo de la
siguiente forma:
– Utilizando la línea de comandos.
– En archivos “*.m”, lo cual permite definir sus propios objetos gráficos.
Se pueden crear herramientas de interfaz gráfica de usuario como: menú, botones, cajas de
texto y otros, con el fin de obtener un resultado al procesar la entrada generada por el usuario.
Ejemplo 1
______________________________________________________________________ 1
Profesor Jesús Antonio Vega Uribe
Se pueden visualizar todas las gráficas en una sola ventana, utilizando el comando subplot.
La ayuda de esta función se muestra a continuación,
El argumento de entrada “i” corresponde a la p-ésima gráfica que está utilizando dentro de las m X
n gráficas disponibles en la Ventana Figura.
Es posible hacer que una de las gráficas (de las mXn) sea la actual si se desea realizar alguna acción
sobre ésta. Existen tres formas de realizarlo:
1. Haciendo click sobre la gráfica deseada (de las mXn) con el puntero del mouse.
2. Usar el comando subplot con los argumentos de entrada “m,m,i”.
3. Usar el comando subplot con un argumento de entrada correspondiente al identificador de los ejes
coordenados de la gráfica (de las mXn).
______________________________________________________________________ 2
Profesor Jesús Antonio Vega Uribe
....
"m"
filas
:
:
....
"n" columnas
Las posiciones 2 y
3 se dejan libres
Ejemplo 2
______________________________________________________________________ 3
Profesor Jesús Antonio Vega Uribe
Suponga que se tienen tres gráficas y se desea ubicar el título a dos de ellas, utilizando el comando
subplot de acuerdo al ejercicio anterior. Para hacer esto, se piensa en una división de la Ventana
Figura de dos filas por dos columnas, ver siguiente figura.
1 2
3 4
De las cuatro posiciones disponibles para dibujar, se utilizarán la 1, 3 y 4. Ver siguiente figura.
Se ubica el texto usando los comandos subplot y title. Ver siguiente figura.
______________________________________________________________________ 4
Profesor Jesús Antonio Vega Uribe
Ejemplo 3
Debido a que todas las figuras son objetos y los ejes coordenados son también
objetos, es posible obtener en Matlab los punteros (así como en otros lenguajes de
programación) de cada uno de los objetos que se encuentren presentes sobre el
escritorio de trabajo. Para realizar lo anterior, se utiliza el comando get que permite
obtener el puntero de los ejes coordenados presentes en la Ventana Figura actual,
ver siguiente figura.
______________________________________________________________________ 5
Profesor Jesús Antonio Vega Uribe
Supongamos que se dibujan las tres gráficas anteriores (grafica anterior) y se desea
cambiar la gráfica ubicada en la posición 2 por una función coseno.
Ahora, se cambia la gráfica de la posición 2 por la función coseno, usando el
comando get. Ver siguiente figura.
Ejemplo 4
¿Cómo se genera una gráfica en dos dimensiones?
______________________________________________________________________ 6
Profesor Jesús Antonio Vega Uribe
Para generar una gráfica en dos dimensiones, es necesario entender cómo es el
proceso de dibujo en Matlab.
Primero que todo, cada uno de los ejes debe ser considerado como un vector. Esto
hace que cuando se va a generar una gráfica es necesario que los dos vectores
posean igual número de elementos.
De esta forma, se tiene una relación entre los primeros elementos de cada vector;
así mismo entre los segundos elementos y así sucesivamente.
Por ejemplo, generamos dos vectores cada uno con seis (6) elementos tal y como
se muestra a continuación:
x = [3 8 10 15 20 25]
y = [7 9 11 13 16 19]
↑ ↑ ↑
(1) (2) ... (6) ← posiciones
______________________________________________________________________ 7
Profesor Jesús Antonio Vega Uribe
De acuerdo a esta ayuda y para el caso que se está mostrando, se puede usar la
función como se muestra en la siguiente figura.
______________________________________________________________________ 8
Profesor Jesús Antonio Vega Uribe
Carácter
deseado Cada par de coordenadas
y que define un punto Igual gráfica pero
representa en el plano cartesiano. con diferente
la ubicación de presentación.
cada par de
puntos en el
plano
cartesiano.
Ejemplo 5
¿Cómo se dibujan dos o más gráficas en los mismos ejes coordenados?
Para ello, la función a utilizar es hold.
Matlab tiene la característica, por defecto, que si se tienen dos pares de vectores
(xnx1,y1nx1) y (xnx1,y2nx1), y se utiliza la función plot en dos líneas, él toma y
ejecuta la primera línea de comando plot(x,y1) para luego ejecutar la segunda línea
plot(x,y2) pero con esta característica: remueve la gráfica actual (ver siguiente
figura).
______________________________________________________________________ 9
Profesor Jesús Antonio Vega Uribe
Se observa es la
gráfica del
último comando
plot(x,y2).
La función hold se utiliza una línea después que se emplea el comando plot de
acuerdo a la siguiente figura.
______________________________________________________________________ 10
Profesor Jesús Antonio Vega Uribe
Ejemplo 6
¿Qué sucede cuando se ubica como argumento de entrada a la función “plot” una
matriz?
Matlab genera una gráfica para cada columna de la matriz M y ubica el eje “x” con
el vector incremental 1:m, donde la matriz tiene un tamaño Mmxn.
Se desea dibujar 4 gráficas en los mismos ejes coordenados, en donde cada gráfica
corresponde a la suma progresiva de funciones coseno (cada una con diferente
amplitud y frecuencia).
La expresión que relaciona las funciones coseno es
Además,
______________________________________________________________________ 11
Profesor Jesús Antonio Vega Uribe
Todos los vectores
se acomodan
como columnas
El programa de la figura anterior genera una gráfica con 5 líneas. Lo anterior puede
extenderse a una matriz de nxn.
______________________________________________________________________ 12
Profesor Jesús Antonio Vega Uribe
En general, cuando se utiliza la función plot con dos argumentos de entrada y uno
de ellos posee mas de una fila o columna, se tiene:
Sintaxis
plot(x,y)
donde
x → matriz o vector.
y → matriz o vector.
1. Si se tiene
y → matriz.
x → vector.
La función plot dibuja cada una de las filas o columnas de la matriz “y” contra
el vector “x”.
2. Si se tiene
x → matriz.
y → vector.
La función plot dibuja cada una de las filas o columnas de la matriz “x” contra
el vector “y”.
3. Si se tiene
x → matriz.
y → matriz.
La función plot dibuja cada una de las columnas de la matriz “x” contra las
columnas de “y”.
______________________________________________________________________ 13
Profesor Jesús Antonio Vega Uribe
Etiqueta de título.
Línea
definida(color,
estilo y
marcador).
Numeración y
límites del eje
"x".
CUBO RGB y con el cual se pueden obtener los demás colores(ver siguiente tabla). Este
concepto también es utilizado por la herramienta Microsoft Paint de Windows.
Código RGB
Color Símbolo
Vector tres posiciones
Azul(Blue) [0 0 1] b
Verde(Green) [0 1 0] g
Rojo(Red) [1 0 0] r
Amarillo(Yellow) [1 1 0] y
Magenta(Magenta) [1 0 1] m
Cyan(Cyan) [0 1 1] c
Blanco(White) [1 1 1] w
Negro(Black) [0 0 0] k
______________________________________________________________________ 14
Profesor Jesús Antonio Vega Uribe
Todo color siempre se especifica como un vector de tres posiciones correspondientes a las tres
coordenadas R, G y B(Espacio de color RGB). Ver siguiente figura.
B (Azul)
G (Verde)
R (Rojo)
El estilo de línea en las gráficas se puede dibujar usando diferentes clases de símbolos. Ver
siguiente tabla.
Ya que Matlab toma pares de coordenadas, ubica un punto y luego une por una línea recta, es
posible que en lugar de ubicar puntos sitúe algunos marcadores disponibles. Ver siguiente tabla.
Marcador Símbolo
Signo Suma. +
Círculo. o
Asterisco. *
Punto. .
Cruz. x
Cuadrado. Square
Diamante. Diamond
Triángulo apuntando hacia arriba. ^
Triángulo apuntando hacia abajo. v
Triángulo hacia la derecha. >
Triángulo hacia la izquierda. <
Estrella de cinco puntas. pentagram
Estrella de seis puntas. hexagram
Ninguno. sin marcador
______________________________________________________________________ 15
Profesor Jesús Antonio Vega Uribe
La sintaxis del comando plot cuando se quiere dibujar con las opciones color,
estilo de línea y marcador es:
y = cos(x) + 0.4*cos(3*x);
Comando Gráfica
plot(x,y,':+')
______________________________________________________________________ 16
Profesor Jesús Antonio Vega Uribe
plot(x,y,'-.square')
x = 0:0.1:pi;
y = cos(x) + 0.4*cos(3*x);
plot(x,y,'--hexagram')
______________________________________________________________________ 17
Profesor Jesús Antonio Vega Uribe
Límites del eje
"x" modificados.
______________________________________________________________________ 18
Profesor Jesús Antonio Vega Uribe
Línea de comando Gráfica
x = 0:0.1:3*pi;
y = cos(x) + 0.6*cos(5*x);
plot(x,y)[opción defecto]
x = 0:0.1:3*pi;
y = cos(x) + 0.6*cos(5*x);
gca → función que permite tomar la gráfica actual y hacer cambios en ella.
set → función que permite ajustar propiedades y características de los ejes
coordenados.
valores → vector de valores en orden ascendente. Estos valores no necesitan
estar igualmente espaciados.
______________________________________________________________________ 19
Profesor Jesús Antonio Vega Uribe
Línea de comando Gráfica
x = 0:0.1:3*pi;
y = cos(x) + 0.6*cos(5*x);
plot(x,y)[opción defecto]
x = 0:0.1:3*pi;
y = cos(x) + 0.6*cos(5*x);
y = cos(x) + 0.4*cos(7*x);
______________________________________________________________________ 21
Profesor Jesús Antonio Vega Uribe
plot(x,y)
axis equal tight
Ejemplo 7
Se tiene la siguiente función,
y(t) = e j0.5t = cos(0.5t) + jsen(0.5t)
No aparece
información en la
gráfica de ejes, título,
etc.
______________________________________________________________________ 22
Profesor Jesús Antonio Vega Uribe
Aparece
información en
la gráfica de
ejes, título,
etc.
______________________________________________________________________ 23
Profesor Jesús Antonio Vega Uribe
Aparece texto
informativo en las
posiciones "x" y "y"
deseadas.
______________________________________________________________________ 24
Profesor Jesús Antonio Vega Uribe
Ejemplo 8 – Gráficos en 3D
De manera general,
plot3(x,y,z)
Ubica puntos en el espacio tridimensional en donde las coordenadas de
cada punto son los elementos de cada uno de los vectores x, y y z .
Se tiene la función y(t) = 5e jw t donde w n = 2πf = 100 π .
n
______________________________________________________________________ 25
Profesor Jesús Antonio Vega Uribe
y (t) = 5Cos (100 πt) + j5Sen(100 πt)
y ( t ) = + j
Eje
Tiempo
Parte
Real
luego se genera la variable "y" que contiene las partes real e imaginaria,
y = 5*exp(j*100*pi*t);
¿Es posible saber si una variable en Matlab posee sus elementos como reales?
Para ello se utiliza la función "isreal", de acuerdo a la siguiente figura.
La función "isreal"
genera un "0"
indicando que la
variable "y" posee
elementos
imaginarios.
______________________________________________________________________ 26
Profesor Jesús Antonio Vega Uribe
Finalmente se dibuja la variable "y" en el espacio 3-D, ver siguiente figura.
Ejemplo 9
−t
Se tiene la función y(t) = 10e 0.05
e j120πt .
y(t) = 10e
−t
0.05
Cos(120πt) + jSen(120πt)
______________________________________________________________________ 27
Profesor Jesús Antonio Vega Uribe
Se genera el código y el dibujo mostrados en la siguiente figura.
Se realizan rotaciones al dibujo de la figura 6.33 para obtener las tres perspectivas
básicas, ver siguiente figura.
______________________________________________________________________ 28
Profesor Jesús Antonio Vega Uribe
Ejemplo 10 – representación de una matriz como una superficie
Se tiene la función f ( x , y ) = Sen( x y ) .
¿Cómo se puede representar una función de dos variables en 3-D?
______________________________________________________________________ 29
Profesor Jesús Antonio Vega Uribe
Vector que representa el dominio
para la función de
transformación "meshgrid".
______________________________________________________________________ 30
Profesor Jesús Antonio Vega Uribe
Para el presente ejemplo, se utilizarán las funciones "meshgrid" y "mesh" para
Ejemplo 11
Matlab define una superficie con las coordenadas en el eje "z" como puntos por
encima de una rejilla rectangular en el plano x-y. El dibujo se forma uniendo por
líneas rectas todos los puntos adyacentes tal que se genere una malla rectangular.
Este tipo de superficies permite dos características importantes:
Visualizar matrices que son demasiado grandes para mostrarlas numéricamente
o en el prompt de Matlab.
Dibujar funciones de dos variables.
______________________________________________________________________ 31
Profesor Jesús Antonio Vega Uribe
Si se tiene una matriz A, se puede dibujar una superficie en 3-D cuyos puntos son
los valores de cada uno de los elementos en la matriz.
Supongamos que tenemos una imagen en escala de grises en el archivo "dibujo.tiff"
de acuerdo a la siguiente figura.
______________________________________________________________________ 32
Profesor Jesús Antonio Vega Uribe
Se pueden realizar rotaciones a la representación en 3-D de la figura anterior tal y
como se muestra en la siguiente figura.
______________________________________________________________________ 33
Profesor Jesús Antonio Vega Uribe
Ejemplo 12
______________________________________________________________________ 34
Profesor Jesús Antonio Vega Uribe
______________________________________________________________________ 35
Profesor Jesús Antonio Vega Uribe
Se observa que las líneas
ocultas no se muestran al
ejecutar el comando
"hidden off".
Para este ejercicio, si se desea conocer el mapa de color utilizado para dibujar el
color de cada punto en la gráfica se utiliza el comando "colorbar". Ver siguiente
figura.
______________________________________________________________________ 36
Profesor Jesús Antonio Vega Uribe
Existe una función "shading" que elimina la malla y colorea suavemente la superficie
de la figura dibujada. Esta función sólo puede ser utilizada con la función "surf".
______________________________________________________________________ 37
Profesor Jesús Antonio Vega Uribe