You are on page 1of 34

Lenguaje de Programacin

Computacin y Programacin

Grficos en MatLab (1)

Yussef Farran
yfarran@udec.cl
Ejemplo
6

Graficar un trazo
5.5
entre los puntos
x1=2, y1=3 5

4.5

y 4

3.5

x2=5, y2=6 3
2 2.5 3 3.5 4 4.5 5
Graficos 2D
Los grficos estn basados en la visualizacin
de elementos a partir de un vector

Por ejemplo si:


y=[1 2 3 3 5 3 3 2 1]
posicin 1 2 3 4 5 6 7 8 9

Se asume que los elementos de(l vector) y


tienen un orden y
le asigna su posicin (en el vector) como eje x
Entonces para graficar utilizamos la funcin plot (y)

4.5

4
y=[1 2 3 3 5 3 3 2 1]
3.5

3
x=[1 2 3 4 5 6 7 8 9]
2.5

1.5

1
1 2 3 4 5 6 7 8 9
Para dibujar una grafica 2D
Primero: generar los vectores con los puntos
a graficar
- un vector para cada eje

Luego : utilizar la funcin plot

Si el eje de las x no esta presente, se asume valores


de 1 en adelante para cada valor de y, o lo que es lo
mismo, los ndices del vector.
>> x=[1 3 2 4 5 3]
x=
132453
>> plot(x)

El elemento bsico para trabajar en grficos


2D es el vector

>> s=[1 3 2 4 5 3]
s=
132453
>> plot(s)

Los valores predeterminados son color: azul y


lnea continua
Si deseamos agregar
un reticulado, usamos
el siguiente comando:

>> grid
ejemplo
queremos dibujar la grfica de la funcin
y = sen(x)

Primero creamos una tabla de valores para x


>>x = 0 : pi/100 : 2*pi;

Con este comando hemos formado una tabla


(el vector x) con 200 valores entre 0 y 2p
ejemplo
Otra forma de conseguir el mismo resultado
sera utilizar el comando
>>x = linspace(0 , 2*pi , 200);

Como ya tenemos el vector, con esos puntos


calculamos los valores de y
>> y = sin(x)
ejemplo
Finalmente la graficamos

>>plot(x,y)
Un ejemplo para graficar
x=-4:.01:4; y=sin(x); plot(x,y), grid, title('Funcin seno(x)')
Otro ejemplo
x= -3 : 0.2 : 3;
y = exp(-x.*x); plot(x,y)

Y si el incremento fuera 2 o 1 o 0.5 ??


podemos dibujar un
cuadriltero de la siguiente
forma:

x=[1 6 5 2 1]; y=[1 0 4 3 1]; ...


plot(x,y)
Forma general del comando
plot(x1, y1, x2, y2, x3,y3,..., 'opciones)

donde
- x e y: son vectores de la misma longitud
- opciones: color, estilo, otros del grfico

plot(y) eje abscisas por omisin


MATLAB dispone de cinco funciones bsicas para crear
grficos 2-D. Estas funciones se diferencian principalmente
por el tipo de escala que utilizan en los ejes de abscisas y
de ordenadas. Estas cinco funciones son las siguientes:
a. plot() crea un grfico a partir de vectores y/o columnas de
matrices, con escalas lineales sobre ambos ejes
b. plotyy() dibuja dos funciones con dos escalas diferentes
para las ordenadas, una a la derecha y otra a la izquierda
de la figura.
c. loglog() dem con escala logartmica en ambos ejes
d. semilogx() dem con escala lineal en el eje de ordenadas y
logartmica en el eje de abscisas
e. semilogy() dem con escala lineal en el eje de abscisas y
logartmica en el eje de ordenadas
Existen adems otras funciones orientadas a aadir ttulos al
grfico, a cada uno de los ejes, a dibujar una cuadrcula auxiliar,
a introducir texto, etc. Estas funciones son las siguientes:

a. title('ttulo') aade un ttulo al dibujo


b. xlabel(rotulo en x') aade una etiqueta al eje de abscisas.
c. ylabel(rotulo en y') aade una etiqueta al eje de ordenadas.
d. text(x,y,'texto') introduce 'texto' en el lugar especificado por
las coordenadas x e y. Si x e y son vectores, el texto se
repite por cada par de elementos. Si texto es tambin un
vector de cadenas de texto de la misma dimensin, cada
elemento se escribe en las coordenadas correspondientes
gtext('texto') introduce texto con ayuda del mouse: el
cursor cambia de forma y se espera un clic para introducir el
texto en esa posicin
legend() define rtulos para las distintas lneas o ejes
utilizados en la figura. Para ms detalle, consultar el Help
grid activa la inclusin de una cuadrcula en el dibujo. Con
grid off desaparece la cuadrcula
whitebg(colorSpec') permite cambiar el color de la ventana
del grfico, donde colorSpec es la especificacin del color.
Los dos grupos de funciones anteriores no actan
de la misma forma.
As, la funcin plot dibuja una nueva figura en la
ventana activa
(en todo momento MATLAB tiene una ventana
activa de entre todas las ventanas grficas abiertas)
o abre una nueva figura si no hay ninguna abierta,
sustituyendo cualquier cosa que hubiera dibujada
anteriormente en esa ventana
Para verlo, se comenzar creando un par de vectores
x e y con los que trabajar:
>> x = [-10 : 0.2 : 10]; y = sin(x);
Ahora se deben ejecutar los comandos siguientes (se
comienza cerrando la ventana activa, para que al crear la
nueva ventana aparezca en primer plano):
>> close % se cierra la ventana grfica activa anterior
>> grid % se crea una ventana con una cuadrcula
>> plot(x,y) % se dibuja la funcin seno borrando la
cuadrcula
Se puede observar la diferencia con la
secuencia que sigue:
>> close
>> plot(x,y) % se crea una ventana y se
dibuja la funcin seno
>> grid % se aade la cuadrcula sin borrar
la funcin seno
ColorSpec: Color specification
ColorSpec is not a command; it refers to the three ways in which you specify color in
MATLAB: RGB triple Short name Long name

The short names and long names are MATLAB strings that specify one of eight predefined
colors. The RGB triple is a three-element row vector whose elements specify the
intensities of the red, green, and blue components of the color; the intensities must be in
the range [0 1]. The following table lists the predefined colors and their RGB equivalents.

RGB Value Short Name Long Name


[1 1 0] y yellow
[1 0 1] m magenta
[0 1 1] c cyan
[1 0 0] r red
[0 1 0] g green
[0 0 1] b blue
[1 1 1] w white
[0 0 0] k black
Various line types, plot symbols and colors may be obtained with
PLOT(X,Y,S) where S is a character string made from one element
from any or all the following 3 columns:

b blue . point - solid

g green o circle : dotted

r red x x-mark -. dashdot


c cyan + plus -- dashed

m magenta * star (none) no line

y yellow s square

k black d diamond

v triangle (down)

^ triangle (up)

< triangle (left)

> triangle (right)

p pentagram

h hexagram
La funcin plot(), en sus diversas
variantes, no hace otra cosa que dibujar
vectores.
Un ejemplo muy sencillo de esta funcin,
en el que se le pasa un nico vector
como argumento, es el siguiente:
>> z=[1 3 2 4 5 3]

z=

132453

>> plot(z)

Y el string de caractersticas del dibujo

t='r-^

plot(z, t)

plot (x,y,'r-',x,y,'go')

Plotea 2 veces la
funcin con una lnea
roja slida r-
interpolando crculos
verdes go
Construir un grfico de temperaturas

Tiempo = [0.0 0.5 1.0];


temps = [105, 126, 119];

plot (Tiempo, temps, 'm')

title ('mediciones de temperatura')

xlabel ('Tiempo, minutos')

ylabel ('Temperatura, grados F')

grid

agregar una lnea graficando el promedio


prom = mean(temps)
plot ([0,1] , [prom,prom], 'r')
Analizar resultado, corregir
Cadena de opciones
Cadena que especifica el estilo de lnea, del
marcador, color, grosor, etc.
- Color: r (Red), g(Green), b(Blue), c(Cyan), m (Magenta),
y (Yellow), k (blacK), w (White)
- Estilo: - (solida), -- (trazas), : (puntos), -. (lneas y
puntos)
- Marcadores: +, o, *, ., x, s (square), d (diamante),
- ^ v > o < (tringulos en distinto sentido),
- p (estrella 5 puntas, pentagram),
h (estrella 6 puntas, hexagram)
- Ej: plot (x, y, 's-r')
- Ej: plot (x, y, 's-r')
polar(angulos, radios, s)
- Dibuja las coordenadas polares en un plano,
indicando los angulos (en radianes) y el radio
de cada punto. S es la cadena de caracteres
opcional para el estilo de la linea.
- Ejemplo:
t = 0 : .01 : 2*pi;
polar(t,sin(2*t).*cos(2* t),'--r')
un grfico con coordenadas
polares:

theta = 0 : 2*pi/100 : 2*pi;


r=theta/2*pi;
polar(theta,r),
title('grafica polar')
Un grfico de varias
funciones:

f(:,1) = x'.^2 - 3 * x' + 2;...


f(:,2) = 2*x'.^2 + x' - 3;...
plot(x,f), title('Mltiples
funciones'), ...
xlabel ( 'x' ) , grid
Otro ejemplo
x=0:pi/25:6*pi; ...
y=sin(x); z=cos(x); ...
plot(x,y,x,z)

Pruebe tambin cambiar el color de la ventana del


grfico:
whitebg(ColorSpec)
whitebg(c)
whitebg([0 1 0])
whitebg ([0.5 1 0])
Ejemplo de grficos 3D
x = -2 : 0.1 : 2;
y = -1 : 0.1 : 2;
[x_grid, y_grid] = meshgrid(x,y);
z= 1./(1 + x_grid.^2 + y_grid.^2);
subplot(2,1,1), mesh(x_grid, y_grid,z), ...
title('grfica de malla'), xlabel('x'),...
ylabel('y'), zlabel('z'), pause
subplot (2,1,2),surf(x_grid, y_grid,z),...
title('grafica de superficie'), xlabel('x'), ...
ylabel('y'),zlabel('z')

You might also like