Vous êtes sur la page 1sur 9

Como Graficar En Matlab

Funciones en dos dimensiones


Para dibujar funciones de una variable, Matlab dispone de la funcin plot, con la
siguiente sintaxis:
- Plot (Y) Dibuja la grfica que toma los ndices de Y como valores en el eje x y
las columnas de Y como valores en el eje y.
- plot(x1,y1, ...) Une con una lnea todos los pares de la forma (xn,yn)
- plot(X, Y) Si X e Y son vectores, dibuja las columnas/filas de X con respecto a
las columnas/filas de Y.
Plot dispone de argumentos opcionales que permiten especificar el tipo de lnea que
se dibuja, as como su color y el tipo de marcador para los puntos dibujados:
- plot(X,Y, '--r') Dibuja una lnea discontinua en rojo
- plot(X,Y, 's') Dibuja solo los puntos como cuadrados
- plot(X,Y, '+r') Dibuja solo los puntos como cruces en rojo
- plot(X,Y, 'g') Dibuja una lnea continua en verde
Es posible configurar ciertos aspectos de las grficas, entre otros:
- title(string) Establece la cadena string como ttulo de la grafica
- xlabel(string) Establece la cadena string como etiqueta del eje x de la grafica
- ylabel(string) Establece la cadena string como etiqueta del eje y de la grafica
- axis Controla la apariencia y escala de los ejes. Presenta varias opciones
Subfiguras
El comando subplot permite dibujar varias graficas en una misma ventana de figura.
Su sintaxis es la siguiente:
subplot(m,n,p)
Con este comando, la ventana de figura actual se descompone en una matriz de m x n
subfiguras y se selecciona la subfigura numero p para ser utilizada.

x = 0:0.1:2*pi; y1 = sin(x);
y2 = cos(x);
subplot(2,1,1)
plot(x,y1)
title(y = sin(x));
Subplot (2, 1,2)
plot(x,y2)
title(y = cos(x));

Graficando Datos
Las representaciones de funciones pueden realizarse en coordenadas implcitas,
explcitas y paramtricas. MATLAB es, por tanto, un software matemtico con
elevadas prestaciones grficas, lo que le distingue de muchos otros paquetes de
clculo simblico. Tambin permite MATLAB realizar grficos de barras, lneas,
estrellas, histogramas, poliedros, mapas geogrficos y animaciones. La creacin de un
grfico suele acoplarse a los siguientes pasos:

Paso Ejemplo
Preparar los datos x = 0:0.2:12; y1 = bessel(1,x); y2 =
bessel(2,x); y3 = bessel(3,x);
Elegir ventana y situar posicin figure(1); subplot(2,2,1)
Usar funcin de grfico h = plot(x,y1,x,y2,x,y3);
Elegir caractersticas de set(h,'LineWidth',2,{'LineStyle'}; set(h,
lneas y marcadores {'Color'},{'r';'g';'b'})
Situar lmites de ejes, marcas y axis([0 12 -0.5 1]) grid on
mallas xlabel('Time') ylabel('Amplitude')
Situar anotaciones,
etiquetas y leyendas legend(h,'First','Second','Third')
title('Bessel Functions')
[y,ix] = min(y1);
Exportar el grfico print -depsc -tiff -r200 migrafico

Grficos bsicos 2D: barras, sectores,


Histogramas, racimo, error y flechas
Se presentan los comandos ms importantes de MATLAB que permiten realizar
grficos bidimensionales bsicos. Es de resaltar la posibilidad de representar
funciones tanto en coordenadas explcitas como paramtricas y polares.

bar(Y) Grfico de barras relativo al vector de frecuencias Y. Si Y


es matriz se obtiene el grfico de barras mltiple para
bar(x,Y) cada filade
Grfico debarras
Y relativo al vector de frecuencias Y
siendo x un vector que define los espacios en el eje X
bar(...,anchura) Grfico con anchura de las barras dada. Por defecto, la
anchura es 0,8 y la anchura 1 provoca que las barras
bar(...,'estilo') Grfico con estilo para las barras dado. Los estilos son
group (estilo por defecto con barras verticales
agrupadas) y stack (barras apiladas). Si la matriz Y es
(m,n), el grfico agrupado tiene m grupos de n barras
bar(...,color) Las barras son todas del color especificado (r=rojo,
g=verde, b=azul, c=cyan, m=magenta y=yellow,
barh(...) Grficos de barras horizontales
hist(Y) Dibuja el histograma relativo al vector de frecuencias Y
usando 10 rectngulos iguales de igual base. Si Y es
una matriz, se construye un histograma para cada una
de sus columnas.
hist(Y,x) Dibuja el histograma relativo al vector de frecuencias Y
usando tantas cajas como elementos tiene el vector x y
centrando cada caja en los sucesivos valores de x
hist(Y,k) Dibuja el histograma relativo al vector de frecuencias Y
usando tantas cajas como indica el escalar k.
[n,x] = hist(...) Devuelve los vectores n y x con las frecuencias
asignadas a cada caja del histograma y los valores en
pie(X) los que se
Realiza centrande
el grfico lassectores
cajas relativo al vector de
pie(X,Y) frecuencias
Realiza X
el grfico de sectores relativo al vector de
frecuencias X desplazando hacia fuera los sectores en
errorbar(x,y,e) los que Yi
Realiza el 0
grfico del vector x contra el vector y con los
errores especificados en el vector e. Pasando por cada
punto (xi,yi) se dibuja una lnea vertical de longitud 2ei
stem(Y) Dibuja el grfico de racimo relativo al vector Y. Cada
punto de Y es unido al eje x por una lnea vertical
stem(X,Y) Dibuja el grfico de racimo relativo al vector Y cuyos
elementos son dados a travs del vector X
stairs(Y) Dibuja el grfico escalonado relativo al vector Y

stairs(X,Y) Grfico escalonado del vector Y con elementos a travs del vector X
rose(Y) Dibuja el histograma angular relativo al vector Y, de ngulos en
radianes utilizando 20 radios iguales
rose(Y,n) Dibuja el histograma angular del vector Y usando n radios iguales
rose(X,Y) Dibuja el histograma angular relativo al vector Y utilizando
radios que miden lo especificado en los elementos del vector X
compas(Z) Realiza un diagrama de flechas que salen del origen y cuya
magnitud y direccin vienen determinadas por el mdulo y el
argumento de los nmeros complejos componentes del vector Z.
La flecha relativa al complejo Zi une el origen con el afijo de Zi

compas(X,Y) Equivale a compas(X+i*Y)


compas(Z,S) o Especifica en S el tipo de lnea a usar en las flechas
compas(X,Y,S)
feather(Z) o Es igual que compas, con la nica diferencia de que el origen de
feather(X,Y) o las flechas no est en el origen de coordenadas, sino que salen de
feather(Z,S) o puntos igualmente espaciados de una lnea horizontal
feather(X,Y,S)

legend (leyenda1, Sita las leyendas dadas en n grficos consecutivos


leyenda2, ...,
leyendan)

Representamos un grfico de barras (Figura 1-1) definidas por la funcin e-x*x cuando x
vara en (-3,3) de dos en dos dcimas.
>> x = -2.9:0.2:2.9;
bar(x, exp(-x.*x))

Figura 1-1
Se grafican los 5 grupos de 3 barras correspondientes a una matriz aleatoria (5,3),
tanto en modo agrupado (Figura 1-2), como apilado (Figura 1-3).
>> Y = round(rand(5, 3)*10);
>> bar(Y,'group')
>> bar(Y,'stack')

Figura 1-2 Figura 1-3

Se muestran las barras apiladas horizontalmente (Figura 1-4) y tambin el grfico de


barras verticales con anchura 1,5.
>> Y = round(rand(5, 3)*10);
>> barh(Y,'stack')
>> bar(Y, 1.5)

Figura 1.4
Grficos 2D: curvas en explcitas, implcitas,
paramtricas y polares
Los comandos ms importantes de MATLAB
para representar curvas en dos dimensiones se
presentan a continuacin.

plot(X,Y) Dibuja el conjunto de puntos (X,Y), donde X e


Y son vectores fila. Para graficar una funcin
y=f(x) es necesario conocer un conjunto de
puntos (X,f(X)), para lo que hay que definir
inicialmente un intervalo de variacin vectorial X
para la variable x. X e Y pueden ser matrices
de la misma dimensin, en cuyo caso se hace
una grfica por cada par de filas y sobre los
mismos ejes. Para valores complejos de X e Y se
ignoran las partes imaginarias. Para x = x(t) e y =
plot(Y) Grafica los elementos del vector Y contra sus
ndices, es decir, da la grfica del conjunto de
puntos (t,yt) t=1,2,...n (n=length(Y)). Es til para
graficar series temporales. Si Y es una matriz,
plot(Y) realiza un grfico para cada columna
de Y, presentndolos todos sobre los mismos
ejes. Si los componentes del vector Y son
plot(X,Y,S) complejos,de
Grfica plot(Y) es equivalente
plot(X,Y) con a las opciones
definidas en S. Usualmente, S se compone de
dos dgitos entre comillas simples, el primero de
los cuales fija el color de la lnea del grfico y el
segundo el carcter a usar en el graficado. Los
valores posibles de colores y caracteres son,
respectivamente, los siguientes: y (amarillo), m
(magenta), c (cyan), r (rojo), g (verde), b
(azul), w
plot(X1,Y1,S1,X2,Y2,S2, (blanco),
Combina, k sobre
(negro),
los. mismos
(puntos), ejes,
o (crculos), x (x-
los grficos
definidos para las tripletas (Xi,Yi,Si). Se trata
de una forma de representar varias funciones
fplot(f,[xmin, xmax]) Grafica la funcin en el intervalo de variacin de x
fplot(f,[xmin, dado
Grafica la funcin en los intervalos de variacin
xmax, ymin, de x e y dados, con las opciones de color y
fplot([f1,f2,...,fn],[xmin, Grafica las funciones f1, f2, ..., fn sobre los
xmax, ymin, ymax], S) mismos ejes en los intervalos de variacin de x e
y especificados y con las opciones de color y

La grfica de la funcin n f (x) Sen(x) e0,4 x


En el intervalo [0,10]. La Figura 7-17 presenta el resultado relativo a la siguiente
sintaxis:
>> x=0:0.05:10;
>> y=sin(x).*exp(-0.4*x);
>> plot(x,y)

La representacin de la curva anterior (Figura 7-18) tambin puede realizarse


mediante la sintaxis siguiente:

>> ezplot('sin(x)*exp(-0.4*x)',[0,10])

Figura 7-17 Figura 7-18

Ttulos, etiquetas y colocacin

MATLAB permite manejar correctamente las anotaciones sobre los grficos y los
ejes mediante colocacin adecuada de ttulos, etiquetas, leyendas, rejillas, etc.
Tambin permite situar grficos en subzonas. Los comandos ms usuales son los
siguientes:

title(texto) Aade el texto como ttulo del grfico en la parte


superior del mismo en grficos 2-D y 3-D
xlabel(texto) Sita el texto al lado del eje x en grficos 2-D y 3-D
ylabel(texto) Sita el texto al lado del eje y en grficos 2-D y 3-D
zlabel(texto) Sita el texto al lado de eje z en un grfico 3-D
clabel(C,h) Rota etiquetas y las sita en el interior de las lneas de
clabel(C,h,v) contorno
Crea etiquetas slo para los niveles de contorno
dados por el vector v y las rota y sita en el interior de
datetick(eje) Etiqueta las marcas del eje especificado (x, y o z)
basndose en el mximo y el mnimo del eje
datetick(eje, fecha) Etiqueta las marcas del eje especificado (x, y o z)
con el formato de fecha dado (un entero entre 1 y 28)
legend('cadena Sita las leyendas especificadas por las cadenas en
1', n grficos consecutivos
legend(h, Sita las leyendas especificadas por las cadenas en
'cadena1', los grficos manejados segn el vector h
legend('off'), Elimina las leyendas de los ejes actuales
text(x,y,texto) Sita el texto en el punto (x,y) dentro del grfico 2-D
text(x,y,z,texto) Sita el texto en el punto (x,y,z) en el grfico 3-D
gtext(texto) Permite situar el texto en un punto seleccionado con
el ratn dentro de un grfico 2-D
Grid Sita rejillas en los ejes de un grfico 2-D o 3-D. La
opcin grid on coloca las rejillas y greed off las
elimina. La opcin grid permuta entre on y off
Hold Permite mantener el grfico existente con todas sus
propiedades, de modo que el siguiente grfico que se
realice se site sobre los mismos ejes y se
superponga al existente. La opcin hold on activa
la opcin y hold off la elimina. La opcin hold
axis([xmin xmax permuta
Sita los entre onmximo
valores y off. Vlido para 2-D
y mnimo paraylos
3-Dejes X, Y
ymin ymax zmin y Z en el grfico corriente
axis(auto) Sita los ejes en la escala automtica por defecto (la
dada por xmin = min(x), xmax = max(x) e y libre)
axis(axis) Congela el escalado de ejes en los lmites
corrientes, de tal forma que al situar otro grfico
sobre los mismos ejes (con hold en on) la escala no

V=axis Da el vector V de 4 elementos, conteniendo la


escala del grfico corriente
axis(xy) Sita coordenadas cartesianas con el origen en
la parte inferior izquierda del grfico
Axis(tight) Sita los lmites de los ejes en el rango de los datos
axis(ij) Sita coordenadas con el origen en la parte superior
izquierda del grfico
axis(square) Convierte el rectngulo de graficado en un cuadrado,
con lo que las figuras se abomban
axis(equal) Sita el mismo factor de escala para ambos ejes
axis(normal) Elimina las opciones square y equal
axis(off) Elimina las etiquetas y marcas de los ejes y las rejillas,
manteniendo el ttulo del grfico y los textos situados en
axis(on) Coloca de nuevo las etiquetas, marcas y rejillas de los
subplot(m,n,p) ejes
Divide la ventana grfica en mxn subventanas y
coloca el grfico corriente en la ventana p-sima,
empezando a contar por la parte superior izquierda y
de izquierda a derecha hasta acabar la lnea, para
plotyy(X1,Y1,X2,Y2 Etiqueta la grfica de X1 contra Y1 en la
) izquierda, y la grfica de X2 contra Y2 en la
derecha.
plotyy(X1,Y1,X2,Y Igual que el comando anterior, pero la funcin puede
2, 'funcin') ser plot, loglog, semilogx, semilogy, tem o cualquier
plotyy(X1,Y1,X2,Y h=function(x,y).
Representamos sobre los mismos ejes (Figura 7-27) las curvas
Sen(x), Sen(2x) y Sen(3x) etiquetadas adecuadamente. La sintaxis es la siguiente:

>> fplot('[sin(x), sin(2*x), sin(3*x)]', [0,2*pi],'-','o','*');


>> legend('Sen(x)', 'Sen(2x)', 'Sen(3x)')
Tambin es posible situar las etiquetas sobre cada grfica (Figura 7-28) mediante la
sintaxis siguiente:

>> fplot('[sin(x), sin(2*x), sin(3*x)]', [0,2*pi],'-','o','*');


>> text(3,0.8,'y=sen(2x)')
>> text(1,-0.6,'y=sen(3x)')
>> text(1.5,1,'y=sen(x)')

Figura 7-27 Figura 7-28

Grficos de lneas 3D
El mdulo bsico de MATLAB permite realizar grficos en tres dimensiones, tanto
de lneas como de mallas y superficies. Tambin permite utilizar coordenadas
paramtricas y explcitas. Los pasos que se siguen en general para realizar un
grfico tridimensional se presentan en la siguiente tabla:

Paso Ejemplo
1. Preparar los datos Z = peaks(20);
2. Seleccionar figure(1)
ventana y subplot(2,1,2)
3. Usar funcin grfica h = surf(Z);
3-D Situar color y
4. colormap hot
sombra shading interp
set(h,'EdgeColor','k')
5. Aadir iluminacin light('Position',[-2,2,20]) lighting
phong material([0.4,0.6,0.5,30])
set(h,'FaceColor',[0.7 0.7 0],...
'BackFaceLighting','lit')

6. Situar punto de view([30,25])


vista set(gca,'CameraViewAngleMode','Manual')
7. Situar lmites y axis([5 15 5 15 -8 8])
marcas en los set(gca'ZTickLabel','Negative||Positive')
8. Situar ratio de set(gca,'PlotBoxAspectRatio',[2.5 2.5 1])
aspecto
9. Situar xlabel('X Axis') ylabel('Y Axis')
anotaciones y zlabel('Function Value')
leyendas, grfico title('Peaks')
y ejes
10. Imprimir el grfico set(gcf,'PaperPositionMode','auto') print
-dps2

En el cuadro siguiente se presentan los comandos de MATLAB ms comunes en la


representacin de grficos de lneas 3-D.
plot3(X,Y,Z) Dibuja el conjunto de puntos (X,Y,Z), donde X, Y y
Z son vectores fila. X, Y y Z pueden ser coordenadas
paramtricas o matrices de la misma dimensin, en
cuyo caso se hace una grfica por cada tripleta de
filas y sobre los mismos ejes. Para valores complejos
plot3(X,Y,Z,S) Grfica de plot(X,Y,Z) con las opciones definidas en S.
Usualmente S se compone de dos dgitos entre comillas
simples, el primero de los cuales fija el color de la lnea
del grfico y el segundo el carcter a usar en el
graficado. Los valores posibles de colores y caracteres
plot3(X1,Y1,Z1 Combina, sobre los mismos ejes, los grficos
,S1, definidos para las tripletas (Xi,Yi,Zi,Si). Se trata de
X2,Y2,Z2,S2, una forma de representar varias funciones sobre el
X3,Y3,Z3,S3,...
fill3(X,Y,Z,C) Dibuja el polgono compacto cuyos vrtices son las
tripletas de componentes (Xi,Yi,Zi) de los vectores
columna X, Y y Z. C es un vector de la misma
dimensin de X, Y y Z, que contiene los colores Ci
de cada punto (Xi,Yi,Zi). Los valores de Ci pueden ser
'r','g','b', 'c','m','y','w','k', cuyos significados ya
conocemos. Si C es un solo carcter, se pintarn todos
los puntos del polgono del color correspondiente al
carcter. Si X, Y y Z son de la misma dimensin, se
representarn simultneamente varios polgonos
correspondientes a cada tripleta de vectores columna
(X.j,Y.j,Z.j). En este caso, C puede ser un vector fila
cuyos elementos Cj determinan el color nico de cada
polgono correspondiente a la tripleta de vectores
columna (X.j,Y.j,Z.j). C puede ser tambin una matriz
fill3(X1,Y1,Z1, Dibuja el polgono compacto cuyos vrtices vienen
C1, X2,Y2, dados por los puntos (Xi, Yi, Zi, Ci)
Z2, C2,...)
Como primer ejemplo representamos la hlice paramtrica x(t) = Sen(t),
y(t) = Cos(t), z(t) = t para valores de t entre 0 y 10separados /50 (Figura 7-35).

>> t = 0:pi/50:10*pi;
plot3(sin(t),cos(t),t) grid on
axis square
A continuacin representamos un polgono compacto (Figura 7-36)
mediante la sintaxis siguiente:
>> X = [0 1 1 2;1 1 2 2;0 0 1 1];
Y = [1 1 1 1;1 0 1 0;0 0 0 0];
Z = [1 1 1 1;1 0 1 0;0 0 0 0];
C = [0.5000 1.0000 1.0000 0.5000;
1.0000 0.5000 0.5000 0.1667;
0.3330 0.3330 0.5000 0.5000]; fill3(X,Y,Z,C)

Figura

Vous aimerez peut-être aussi