Está en la página 1de 37

Ejercicio Aprendizaje 0c: Herramientas gráficas en Matlab

Asignatura: Elementos de Sistemas Eléctricos


Universidad del Rosario – Ingeniería de Sistemas Energéticos – Escuela de Ingeniería,
Ciencia y Tecnología

Objetivo:
El objetivo de este taller es explorar todas las herramientas graficas que ofrece
Matlab.

Procedimiento:

Existen algunos aspectos importantes relacionados con el manejo gráfico en Matlab,


1. Gráficas de alto nivel.
Las funciones que posee Matlab para el manejo de gráficas de alto nivel tienen técnicas que
permiten mostrar datos tales como líneas con base en coordenadas polares y rectangulares,
gráfico de barras e histogramas, dibujos de contorno, mallas y superficies y animación.

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.

3. Construcción de GUI interactivas.


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

¿Cómo se pueden generar varias gráficas de variables en la misma Ventana Figura?


¿Cómo se crean y visualizan las gráficas de un conjunto de variables en la misma ventana?

______________________________________________________________________ 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,

Esta función tiene la siguiente sintaxis:


subplot(m,n,i)
m y n corresponden a las filas y columnas de la división que
se realiza de la Ventana Figura activa, ver siguiente figura.

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

Con base en estas posiciones, se establecen pares de coordenadas.

(xi,yi) → posición i-ésima.


(x1,y1) = (3,7)
(x2,y2) = (8,9)
.
.
.
(x6,y6) = (25,19)

Cada par de coordenadas define un punto en el plano cartesiano.


A cada par le asigna un punto en el plano cartesiano y luego une con una línea recta
cada uno de estos pares.
La función en Matlab que dibuja esos puntos como una gráfica en tiempo continuo
es plot. La ayuda de esta función se muestra en la siguiente figura.

______________________________________________________________________ 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,

En una matriz V se ubican por columnas la acumulación de los yk (para k= 0,1,3,5,7)

Luego se dibujan cada una de las columnas usando la función plot.


Se genera el siguiente programa con el editor de Matlab de acuerdo a la siguiente
figura.

______________________________________________________________________ 11
Profesor Jesús Antonio Vega Uribe
Todos los vectores
se acomodan
como columnas

Función “plot” dibujando 5


columnas de V.

El eje “x”, Matlab lo


genera incremental

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”.

Esta forma de dibujar es muy útil cuando se quieren observar comportamientos de


variables.

Cuando se generan gráficas, ya sean en 2-D o en 3-D, se tiene la posibilidad de


ubicar toda la información necesaria y pertinente para que sea fácil entender la
relación de las dos o tres variables que se están dibujando, ver siguiente figura.

______________________________________________________________________ 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".

Etiquetas de ejes "x"


y "y".

A continuación se analizan cada una de las opciones.


 Características de las líneas.
Existe un conjunto de marcadores, colores y estilos de línea disponibles en Matlab.
El formato de color que utiliza Matlab es con base en el modelo de color RGB que corresponde
a las tres coordenadas Red, Green y Blue(Rojo, Verde y Azul) para formar un cubo llamado

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.

Estilo de Línea Símbolo


Línea sólida(defecto) -
Línea --
Línea punteada(dotted line) :
Línea guión-punto -.
Sin línea none

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:

plot(x,y,'color estilodelínea marcador')


En la siguiente tabla se muestran ejemplos de las opciones mencionadas.
Se generan los vectores para los ejes coordenados,
x = 0:0.01:2*pi;

y = cos(x) + 0.4*cos(3*x);

Comando Gráfica

plot(x,y)[Comando por defecto]

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')

 Límites inferior y superior de los ejes coordenados.


Matlab selecciona automáticamente los límites de los ejes coordenados con base en el rango de
los vectores que se están utilizando.
Es posible cambiar los límites de los ejes coordenados usando el comando axis, ver figura y
tabla a continuación. Esta función necesita como argumento de entrada un vector de cuatro
elementos.
Sintaxis:
axis([xmin xmax ymin ymax])

______________________________________________________________________ 17
Profesor Jesús Antonio Vega Uribe
Límites del eje
"x" modificados.

Es posible también utilizar un auto escala de uno de los límites de un eje


coordenado ya que se desea que los límites del otro eje coordenado sean
especificados. Para ello se debe utilizar la opción "inf" ó "-inf" para tener un límite
auto escalado.

______________________________________________________________________ 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);

plot(x,y), axis[-inf 2*pi 0.5 2]

 Numeración de los ejes coordenados.


Las etiquetas de numeración se pueden ajustar, ya que Matlab por defecto los ajusta de acuerdo
al rango de los vectores que se están utilizando, ver siguiente tabla.
Sintaxis:
set(gca,'ytick',[valores])

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);

plot(x,y), axis[-inf 2*pi 0.5 2]

set(gca,'ytick',[0.5 0.7 1.3 2])

 Aspecto de los ejes coordenados.


Cuando se dibuja en dos dimensiones con Matlab, es necesario utilizar gran parte del espacio
disponible en la Ventana Figura; es por esto que en algunas aplicaciones las gráficas deben
ocupar cierta porción de la Ventana Figura. Este tipo de control está relacionado con el aspecto
o presentación de los ejes coordenados y para realizarlo se utiliza la función axis. A continuación
se muestra la siguiente tabla donde se tienen ejemplos en el control sobre el aspecto de los ejes
coordenados.

Se generan los vectores para los ejes coordenados,


______________________________________________________________________ 20
Profesor Jesús Antonio Vega Uribe
x = 0:0.01:3*pi;

y = cos(x) + 0.4*cos(7*x);

Comando Descripción Gráfica

plot(x,y) Gráfica por defecto.

plot(x,y) Dibuja los ejes coordenados


axis square "x" y "y" iguales en longitud.

Dibuja los ejes coordenados


que son rectangulares en
plot(x,y)
forma, pero tienen igual
axis equal
escalamiento a lo largo de
cada eje.

______________________________________________________________________ 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)

para este caso, un período completo equivale a,


2π = 0.5t ⇒ t = 4π

No aparece
información en la
gráfica de ejes, título,
etc.

Ahora se utilizan opciones para ubicar etiquetas en los ejes coordenados y en


el título, ver siguiente figura.

______________________________________________________________________ 22
Profesor Jesús Antonio Vega Uribe
Aparece
información en
la gráfica de
ejes, título,
etc.

Finalmente se ubica texto dentro de la gráfica. Ver siguiente figura.

______________________________________________________________________ 23
Profesor Jesús Antonio Vega Uribe
Aparece texto
informativo en las
posiciones "x" y "y"
deseadas.

Si se tienen dos dibujos en la misma gráfica, se puede diferenciar en la Ventana


Figura cada uno de ellos usando la función "legend". Ver siguiente figura.

______________________________________________________________________ 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

Se puede expresar y(t) en una forma alterna,

______________________________________________________________________ 25
Profesor Jesús Antonio Vega Uribe
y (t) = 5Cos (100 πt) + j5Sen(100 πt)

y ( t ) =  + j

Se desea dibujar esta función y(t) usando el siguiente sistema coordenado en


3D, ver siguiente figura.
Parte
Imaginaria

Eje
Tiempo

Parte
Real

Primero se genera el eje de tiempo,


t = 0:0.0001:0.04;

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.

Puede rotar el dibujo para observar:


– Eje Real vs. eje tiempo
– Eje Imaginario vs. eje tiempo
– Eje Real vs. eje Imaginario

Ejemplo 9
−t
Se tiene la función y(t) = 10e 0.05
e j120πt .

Se puede expresar y(t) en una forma alterna,

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?

Para ello se utiliza la función "meshgrid" la cual transforma el dominio especificado


por un vector en dos matrices, como se muestra en las siguientes figuras.

______________________________________________________________________ 29
Profesor Jesús Antonio Vega Uribe
Vector que representa el dominio
para la función de
transformación "meshgrid".

La matriz "x" está formada por


filas tomadas del vector dominio
"a". La matriz "x" es cuadrada.

La matriz "y" está formada por


columnas tomadas del vector
dominio "a". La matriz "y" es
cuadrada.

______________________________________________________________________ 30
Profesor Jesús Antonio Vega Uribe
Para el presente ejemplo, se utilizarán las funciones "meshgrid" y "mesh" para

generar el dominio de la función de dos variables f(x,y), ver siguiente figura.

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.

Se desea representar esta imagen en el espacio tridimensional(3-D). Para realizar


esto, se utilizan las funciones "mesh" y "surf" tal y como se muestra en las siguientes
figuras.

______________________________________________________________________ 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

En algunas ocasiones es importante observar las líneas ocultas en el dibujo debido


a la perspectiva. Para realizar esto, se utiliza la función "hidden off" después que

han sido utilizadas las funciones "mesh" o "surf".

Se tiene la función de dos variables f (x , y) = (Cos( y 2 ) )e − x2 +y2


.
Se desea dibujar esta función f(x,y) pero observando todos los puntos y líneas del
gráfico.

______________________________________________________________________ 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

También podría gustarte