Date post: | 30-Oct-2015 |
Category: |
Documents |
Upload: | lrodriguez892566 |
View: | 233 times |
Download: | 4 times |
of 80
GRFICOS EN MATLAB
Profesor: Klebes Ral Arias Quispe Sbado 01 de setiembre del 2012
UNIVERSIDAD NACIONAL DE INGENIERIA
FACULTAD DE INGENIERIA ELECTRICA Y ELECTRONICA
MATLAB provee una amplia variedad de tcnicas para mostrar datos grficamente. Las herramientas interactivas permiten manipular grficos para alcanzar resultados para alcanzar resultados que revelen ms informacin acerca de los datos. Tambin puede imprimir los grficos para representaciones o exportaciones a formatos estndar de grficos para su representacin en Navegadores Web (*.jpeg *.pdf ,etc) u otros medios
El entorno de MATLAB ofrece una variedad de funciones de trazado de datos y un conjunto de herramientas grficas para crear y modificar las pantallas grficas
GRFICOS EN MATLAB
Anatoma de las grficas en MATLAB
El entorno MATLAB ofrece una variedad de funciones para grfica de datos adems de herramientas de GUI para crear y modificar la visualizacin de las grficas. Una figura es una ventana MATLAB que contiene la visualizacin de una grfica (usualmente trazado de datos) y componentes UI. Un trazado (plot) es cualquier visualizacin grfica, a partir de un conjunto de datos que se pueda crear dentro de una ventana figura. Una grfica (graph) es el conjunto de uno o ms trazas en ejes bidimensionales o tridimensionales.
Ventana figura (figure)
Eje (axes)
Traza de curvas (plots)
>> x=0:0.2:20; >> y=sin(x)./sqrt(x+1); >> y(2,:)=sin(x/2)./sqrt(x+1); >> y(3,:)=sin(x/3)./sqrt(x+1); >> plot(x,y)
Anatoma de las grficas en MATLAB Preparar los datos a graficar. oLos datos deben estar en el workspace. Especificar la ventana figura en la que se desea hacer la grfica. o Uso del comando figure. Hace la subdivisin de la grfica en sub-grficas (ejes) si es necesario. Especificar la sub-grfica (eje) en la que se desea hacer la grfica. o Usando el comando subplot. Efectuar el trazado de la grfica. o Usando las funciones trazadoras de grfica bidimensional/tridimensional. Agregar detalles a la grfica. o Leyenda, enrejado, ttulo, etiquetas, etc. Estableciendo valores a las propiedades de los objetos que componen la grfica. o Creando manipuladores a los objetos de la grfica. o Obteniendo/establecimiento propiedades mediante los comandos get y set.
ANATOMA DE MATLAB
Las funciones y herramientas de graficacin de MATLAB dirigen sus salidas a ventanas especiales denominadas ventana figura (Figure)
Ventana Figura de MATLAB
Barra de herramientas
Trazado de lneas que representan datos
Ejes con los que se trazan los datos
Figura acoplable al escritorio
GRFICOS EN MATLAB
La barra de herramientas de la ventana figura permite tener acceso a las caractersticas ms comnmente usadas en la edicin de grficos
Habilitacin del modo edicin de trazado
Acercamiento o alejamiento
Pan Rotacin en 3D
Insertar barra de colores
Insertar leyenda
Ocultar u mostrar las herramientas de trazado
Cursor de datos
Pincel de datos Enlace de datos
GRFICOS EN MATLAB
Grficos de lnea
Grficos de barras
Grficos de rea
Grficas de direccin
Grficas radiales
Grficos de dispersin
GRFICOS EN MATLAB GRFICOS BIDIMENSIONALES
FUNCION DESCRIPCIN
plot Grafica datos 2D con escalas lineales para sus ejes
Plot3 Grafica datos 3D con escalas lineales sus ejes
loglog Grafica con escala logaritmica para ambos ejes
semilogx Grfica con una escala logaritmica para el eje x y escala lineal para el eje y
semilogy Grfica con una escala logaritmica para el eje y y escala lineal para el eje x
plotyy Grafica con 2 ejes y (izquierda y derecha)
hold Mantiene varios grficos a la vez
grid Dibuja una rejilla
Funciones bsicas para el trazado de una grfica
GRFICOS EN MATLAB
GRFICOS EN MATLAB GRFICOS BIDIMENSIONALES Se deben seguir los siguientes pasos : o Preparar los datos por graficar (coordenadas de los puntos). x=0:pi/4:2*pi; y=sin(x); o Con estos vectores se efecta la grfica haciendo uso de las funciones MATLAB para el trazado bidimensional plot(x,y);
Plot : Grafica lneas en 2D
x = -pi:.1:pi; y = sin(x); plot(x,y)
plot(X1,Y1,LineSpec,'PropertyName',PropertyValue)
Plot(X1,Y1,LineSpec,,Xn,Yn,LineSpec)|
plot(X1,Y1,...,Xn,Yn) plot(Y)
-4 -3 -2 -1 0 1 2 3 4-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
GRFICOS EN MATLAB
GRFICOS EN MATLAB
Especificacin de estilos de lnea y colores
Es posible especificar el color, la lnea de estilos, y los marcadores (por ejemplo, los signos ms o crculos) al trazar sus datos utilizando el comando plot: plot(x,y,'color_style_marker')
color_style_marker es una cadena que contiene de uno
cuatro caracteres (entrecomillas) construi
do a partir de un color, un estilo de lnea, y un tipo de marcador.
GRFICOS EN MATLAB
0 1 2 3 4 5 6 7-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
Trazado de lneas y marcadores
Si se especifica un tipo de marcador, pero no un estilo de lnea, slo se dibuja el marcador
plot(x,y,'ks')
Traza cuadrados de color negro en cada punto de los datos, pero no conecta el marcador con una lnea
>> x1 = 0:pi/100:2*pi; >> plot(x1,sin(x1),'ks')
GRFICOS EN MATLAB
0 1 2 3 4 5 6 7-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
plot(x,y,'r:+')
Traza una lnea roja de puntos y ubica marcadores de signo + en cada punto de los datos
Trazado de lneas y marcadores
>> x1 = 0:pi/100:2*pi; >> plot(x1,sin(x1),'r:+')
GRFICOS EN MATLAB
Ubicacin de marcadores en todos los puntos de los datos x
Es posible que desee utilizar menos puntos de datos para trazar los marcadores de las que usa para trazar las lneas. Este ejemplo traza el dato dos veces usando un nmero diferente de puntos para la lnea punteada y los marcadores trazados
GRFICOS EN MATLAB
0 1 2 3 4 5 6 7-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
x1 = 0:pi/100:2*pi; x2 = 0:pi/10:2*pi; plot(x1,sin(x1),'r:',x2,sin(x2),'r+')
-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
GRFICO IMAGINARIO Y DATO COMPLEJO
Cuando los argumentos para plotear son complejos. Z es un vetor o matriz complejo , y es equivalente a:
plot(real(Z),imag(Z))
t = 0:pi/10:2*pi; plot(exp(i*t),'-o)
GRFICOS EN MATLAB
-4 -3 -2 -1 0 1 2 3 4-3
-2
-1
0
1
2
3
clear all; clc; x = -pi:pi/10:pi; y = tan(sin(x)) - sin(tan(x)); plot(x,y,'--rs','LineWidth',2,... 'MarkerEdgeColor','k',... 'MarkerFaceColor','g',... 'MarkerSize',10)
GRFICOS EN MATLAB Trazado de lneas y marcadores
T=3; f=1/T; t=0:T/1000:2*pi; y=sin(2*pi*f*t);
Creacin de un trazo
plot(t,y) xlabel('x=0:2\pi'); ylabel('Amplitud'); title('Trazado de la funcin seno','fontsize',12)
GRFICOS EN MATLAB Ahora agregamos el ttulo y etiquetas en x e y
0 1 2 3 4 5 6 7-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
x=0:2
Am
plit
ud
Trazado de la funcin seno
El carcter \ pi crear el smbolo .
Creacin del texto en puntos dados usando el comando text
GRFICOS EN MATLAB
xlabel('0 \leq \itt \leq 2\pi'); text(1,sin(2*pi*f*1),'\leftarrow Primer punto'); text(2,sin(2*pi*f*2),'\leftarrow Segundo punto'); text(4.5,sin(2*pi*f*4.5),'\leftarrow \it sen(\omegat)'); grid on
0 1 2 3 4 5 6 7-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
Am
plit
ud
Trazado de la funcin seno
0 t 2
Primer punto
Segundo punto
sen(t)
El comando grid on activa el grillado
x=0:pi/10:2*pi
plot(x,sin(x))
text(3*pi/4,sin(3*pi/4),...
'\leftarrowsin(t) = .707',...
'EdgeColor','red',...
'LineWidth',5,...
'LineStyle','-');
Otros atributos del comando text
0 1 2 3 4 5 6 7-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
sin(t) = .707
0 1 2 3 4 5 6 7-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
sin(t) = .707
x=0:pi/10:2*pi
plot(x,sin(x))
text(3*pi/4,sin(3*pi/4),...
'\leftarrowsin(t) = .707',...
'EdgeColor','red',...
'LineWidth',5,...
'LineStyle',':');
GRFICOS EN MATLAB
Tabla de secuencia de caracter TEX \bf Fuente Bold \it Fuente Italic \sl Fuente oblicua \rm Fuente normal \fontname{fontname} Especifica el nombre del tipo de fuente a usar \fontsize{fontsize} Especifica el tamao de la fuente a usar. \color(colorSpec) Especifica el color de los caracteres posteriores. Usa los cocho colres bsicos (red, green, yellow, magenta, blue, black, white) y adems los colores de simulink (gray, darkGreen, orange, and lightBlue). \color[rgb]{r g b} Especifica un triplete RGB con valores entre 0 y 1 como una celda array
Se puede especificar modificadores de flujo que controlan el tipo de fuente y color. Los primeros cuatro modificadores son mutuamente excluyentes. Sin embargo, puede utilizar FontName \ en combinacin con uno de los otros modificadores:
GRFICOS EN MATLAB
Ejemplo
GRFICOS EN MATLAB
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 10
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Curso de Matlab Nivel 1 CEFIEE
text(.1,.5,['\fontsize{16}Curso \color{magenta}de \color[rgb]{0 .5 .5}Matlab'... '\color{red} Nivel 1'... '\color{blue} CEFIEE'])
plot handles
Cada comando cuya salida se expresa en una figura puede tambin devolver un argumento llamado plot handle .
X=linspace(-pi,pi,10) h=plot(x,cos(2*x))
Entonces h es una curva y tambin una variable que contiene toda la informacin correspondiente a la misma y dentro del lxico de matlab suele recibir el nombre de handle. Con la funcin get podemos obtener toda la informacin del handle y mediante la funcin set podemos cambiar sus propiedades segn nuestras necesidades. No slo las curvas devuelven un handle, todos los objetos grficos, incluso los ejes o la propia figura genera un handle.
get(h) : Funcin que obtiene las caractersticas de un handle grfico, ya sea una curva, los ejes de la figura o la misma figura
set(h,attr,val) : Funcin que modifica las caractersticas de un handle grfico, ya sea una curva, ejes de la figura o la misma figura
GRFICOS EN MATLAB
GRFICOS EN MATLAB
Plot handles
h : El handle. attr : Un atributo vlido del handle como cadena de caracteres. val : El nuevo valor del atributo
gca() : No necesita ningn argumento. Devuelve el handle de los ejes de la figura. gcf() : No necesita ningn argumento. Devuelve el handle de la figura figura activa.
1 1.5 2 2.5 3 3.5 4 4.5 51
1.2
1.4
1.6
1.8
2
2.2
2.4
2.6
2.8
3
Pirmide
p=plot([1,2,3,2,1]); set(p,'linewidth',2); set(p,'marker','o'); set(p,'markersize',12); set(p,'markerfacecolor','y'); set(p,'markeredgecolor','r'); t=title('Pirmide'); set(t,'fontsize',14); set(t,'color','g');
GRFICOS EN MATLAB
-pi -pi/2 0 pi/2 pi-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1Funcin Seno
Radianes
Valo
r de la F
unction
x = -pi:.1:pi; y = sin(x); plot(x,y) set(gca,'XTick',-pi:pi/2:pi) set(gca,'XTickLabel',{'-pi','-pi/2','0','pi/2','pi'}) title('Funcin Seno'); xlabel('Radianes'); ylabel('Valor de la Function');
GRFICOS EN MATLAB
-pi -pi/2 0 pi/2 pi-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
-
sen(
)
Trazado del sen()
sin(-4)
x = -pi:.1:pi; y = sin(x); p = plot(x,y); set(gca,'XTick',-pi:pi/2:pi) set(gca,'XTickLabel',{'-pi','-pi/2','0','pi/2','pi'}) xlabel('-\pi \leq \Theta \leq \pi') ylabel('sen(\Theta)') title('Trazado del sen(\Theta)') text(-pi/4,sin(-pi/4),'\leftarrow sin(-\pi\div4)',... 'HorizontalAlignment','left') set(p,'Color','red','LineWidth',2)
Theta aparece como un smbolo griego y se nota el punto -pi/4 y seno(-pi/4)
Es importante saber algunos comandos en LateX
Cambia el color y el tamao
GRFICOS EN MATLAB
Ejercicio: Colocar ms puntos visibles
Trazado de varios conjuntos de datos en un grfico
Multiples pares x-y pueden crear mltiples grficos con una sola lamada a la funcin plot
x = 0:pi/100:2*pi; y = sin(x); y2 = sin(x-.25); y3 = sin(x-.5); plot(x,y,x,y2,x,y3) legend('sin(x)','sin(x-.25)','sin(x-.5)')
El comando legend escribe la leyenda de la
figura
GRFICOS EN MATLAB
t=0:pi/20:2*pi; y=exp(sin(t)); y1=exp(cos(t)); plotyy(t,y,t,y1,'plot','stem');
plotyy : Genera dos ejes vertiicales para dos funvciones distintas
GRFICOS EN MATLAB
0 1 2 3 4 5 6 70
0.5
1
1.5
2
2.5
3
0 1 2 3 4 5 6 70
0.5
1
1.5
2
2.5
3
plotyy(X1,Y1,X2,Y2,'function1','function
2')
x = logspace(-1,2); loglog(x,exp(x),'-s') grid on
loglog
10-1
100
101
102
100
1010
1020
1030
1040
1050
100
102
104
106
108
1010
0
0.5
1
1.5
2
2.5
3x 10
10
x = logspace(0,10); semilogx(x,3*x,'-s') grid on
GRFICOS EN MATLAB
0 1 2 3 4 5 6 7 8 9 1010
0
102
104
106
108
1010
x = 0:.1:10; semilogy(x,10.^x)
GRFICOS EN MATLAB
El comando axis proporciona una serie de opciones para el configuracin de la escala, la orientacin y razn del aspecto de los grficos. Tambin puede configurar estas opciones de forma interactiva
axis([xmin xmax ymin ymax])
El comando axis define los lmites de los ejes (mnimos y mximos)
O para grficos de tres dimensiones
axis([xmin xmax ymin ymax zmin zmax])
axis auto
Permite una seleccin automtico de lmites
axis equal axis square
axis normal
GRFICOS EN MATLAB
axis
polar
0.1
0.2
0.3
0.4
0.5
30
210
60
240
90
270
120
300
150
330
180 0
Grfico del seno polar
figure tetha = 0:.01:2*pi; polar(tetah,sin(2*tetha).*cos(2*tetha),'--r') title('Grfico del seno polar')
GRFICOS EN MATLAB
Graficar:
Ventana figura Las funciones grficas abren automticamente figuras si no hay ventanas figuras en la pantalla. Si existe una ventana figura es para, se utiliza para salida de grficos. Si hay mltiples ventanas figura abierta aquella que es designada la figura actual (la ultima figura usada o clickeada dentro) es usada.
Para crear una nueva ventana figura: figure(n)
Donde n es el nmero en el ttulo de la ventana figura
Inclusin de trazos en una grfica existente
hold : Cambia el comportamiento de la ventana activa, hold on hace que cada dato se represente sobre el anterior, hold off borra las ventanas antes de pintar en ellas.
GRFICOS EN MATLAB
Mostrando mltiples trazos en una figura
Se pueden mostrar mltiples trazados en una misma ventana figura e imprimirlos en el mismo pedazo de papel con la funcin subplot
Subplot(m,n,i) particiona la ventana figura en una matriz de mxn subtrazas y selecciona la subtraza i-sima para el actual trazado . Los trazados son numerados a lo largo de la fila superior de la ventana figura
1 2 n
n+1 n+2 2n
(m-1)n+1 (m-1)n+2 mn
m filas
n filas
subplot(m,n,1) subplot(m,n,2) subplot(m,n,n)
.
. . .
.
.
GRFICOS EN MATLAB
Mostrando mltiples trazos en una figura
>> x=[3.2 4.1 5.0 5.6]; >> y=[2.5 4.0 3.35 4.9]; >> subplot(2,1,1) >> plot(x) >> subplot(2,1,2) >> plot(y)
GRFICOS EN MATLAB
t=0:0.1:2*pi; y1=exp(sin(t)); y2=cos(t); y3=y1./y2; subplot(2,2,[1 3]); plot(t,y1); axis([0 2*pi 0 3]); subplot(2,2,2); plot(t,y2); axis square grid; subplot(2,2,4); plot(t,y3); axis tight;
Mostrando mltiples trazos en una figura
GRFICOS EN MATLAB
GRFICOS EN MATLAB Pasos para la creacin de un grfico
P1:Preparar los datos
clear all;clc;clf; x=0:0.2:24; y1=bessel(1,x); y2=bessel(2,x); y3=bessel(3,x);
P2: Seleccionar una ventana y la posicin en una regin de trazado
p=figure(1); % para guardar subplot(2,2,1)
P3: Llamar a la funciones elementales de graficacin
h=plot(x,y1,x,y2,x,y3);
P4: Seleccionar lneas y marcadores caractersticos
set(h,{'linewidth'},{2;4;6},{'LineStyle'},{'--';':';'-.'}); set(h,{'color'},{'r';'g';'b'})
P5: Establecer los lmites en los ejes, marcadres de puntuacin y lneas de enrejado
axis([0 24 -0.5 1]) grid on
P6: Complementar el grfico con etiquetas en los ejes, leyendas y texto
xlabel('Tiempo'); ylabel('Amplitude'); legend('Primer','Segundo','Tercero'); title('Funciones de Bessel'); [y1min,ix1min]=min(y1); text(x(ix1min),y1min,'Primer mnimo b1 \rightarrow','horizontalalignment','right')
GRFICOS EN MATLAB Pasos para la creacin de un grfico
P7: Exportar el grfico
print(p,'-djpeg','grafico1.jpg')
Ejercicio: Probar para las siguientes funciones:
Para un rango de x [-6,6] y un paso de 0.001
Tipo de grficos en 2D
Grfico de barras
-3 -2 -1 0 1 2 30
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1Grfico de barras de una curva de campana
x=-2.9:0.2:2.9; y=exp(-x.*x); bar(x,y) title('Grfico de barras de una curva de campana')
GRFICOS EN MATLAB
Tipo de grficos en 2D
Grficos de escaleras
-3 -2 -1 0 1 2 3-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6Grfico de escaleras de una curva de campana
x=-2.9:0.2:2.9; y1=bessel(1,x); stairs(x,y1) title('Grfico de escaleras de una curva de campana')
GRFICOS EN MATLAB
Tipo de grficos en 2D
Grfico de histograma
-4 -3 -2 -1 0 1 2 3 40
50
100
150
200
250
300
350
400
450Histograma de datos gaussianos
x=-2.9:0.2:2.9; y=randn(5000,1); hist(y,x) title('Histograma de datos gaussianos')
GRFICOS EN MATLAB
Tipo de grficos en 2D
Grfico de histograma
0 5 10 15 20 25 30 35 40 45 50-2
-1.5
-1
-0.5
0
0.5
1
1.5
2
2.5
3Grfico Stem de datos aleatorios
y=randn(50,1); stem(y,':') title('Grfico Stem de datos aleatorios')
GRFICOS EN MATLAB
-0.5 0 0.5 1 1.5 2 2.5-0.2
0
0.2
0.4
0.6
0.8
1
1.2Grfico Errorbar
x=0:0.1:2; % Crea un vector. y=erf(x); % y es la funcin error de x. e=rand(size(x))/10; % Genera valores de error aleatorios. errorbar(x,y,e) % Crea la grfica. title('Grfico Errorbar'
Grfico de error
GRFICOS EN MATLAB
Tipo de grficos en 2D
Grfico de llenado
-1 -0.5 0 0.5 1-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
STOP
Seal roja de stop
t=(1/8:2/8:15/8)'*pi; % Vector columna. x=sin(t); y=cos(t); fill(x,y,'r') % Un crculo rojo rellenado usando %slo 8 puntos. axis('square') text(-.11,0,'STOP') title('Seal roja de stop')
GRFICOS EN MATLAB
52%
36%
4%
2%2%3%
PP
PSOE
CiU
IU
PNV
Otros
x=[183 125 15 8 7 12] pie(x),legend('PP', 'PSOE','CiU','IU','PNV','Otros')
Diagrama de sectores
GRFICOS EN MATLAB
Diagrama de Pareto
1 2 30
50
100
150
200
250
300
350
N
me
ro d
e E
sc
a
os
0%
14%
29%
43%
57%
71%
86%
100%
x=[183 125 42] pareto(x),ylabel('Nmero de Escaos')
GRFICOS EN MATLAB
1 2 3 4 5 6 70
5
10
15
20Barras Verticales
0 5 10 15 20
1
2
3
4
5
6
7
Barras Horizontales
1234567
0
10
20Barras Verticales 3D
010
20
1234567
Barras Horizontales 3D
>> x=[10 2 3 5 18 20 15 ] >> subplot(2,2,1),bar(x),title('Barras Verticales') >> subplot(2,2,2),barh(x),title('Barras Horizontales') >> subplot(2,2,3),bar3(x),title('Barras Verticales 3D') >> subplot(2,2,4),bar3h(x),title('Barras Horizontales 3D)
Diagrama de barras
GRFICOS EN MATLAB
Grfica de funciones implcitas
-6 -4 -2 0 2 4 6
-5
0
5
0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1-1
-0.5
0
0.5
1
f ='[tan(x),sin(x),cos(x)]'; g ='sin(1 ./ x)'; subplot(2,1,1), fplot(f,2*pi*[-1 1 -1 1]) subplot(2,1,2), fplot(g, [0.01 0.1],1e-3)
GRFICOS EN MATLAB
Creando trazos desde Workspace
>> x=0:.1:4*pi; >> z = (sin(x.^2) + cos(x).^2);
GRFICOS EN MATLAB
Funciones definidas por trozos
>> x=1:7 x = 1 2 3 4 5 6 7 >> x>4 ans = 0 0 0 0 1 1 1
GRFICOS EN MATLAB
Funciones definidas por trozos
>> y=(x>2)&(x
GRFICOS EN MATLAB
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2 2.5 3-1
-0.5
0
0.5
1
1.5
2
2.5
3
3.5
4Funcin definida a trozos
x=linspace(-2,3,3000); y=(x.^2).*(x
GRFICOS EN MATLAB GRFICOS TRIDIMENSIONALES
Grficos de lnea
Grficos de Barras y mallado
Grficos de rea y objetos constructivos
Grficos de superficie
Grficas de direccin
Grficas volumtrico
GRFICOS EN MATLAB GRFICOS TRIDIMENSIONALES
Trazado de lneas en 3-D
La funcin plot3 se encarga de la creacin de los trazos tridimensionales, de un conjunto de puntos, su sintaxis es:
plot3(X1,Y1,Z1,...) plot3(X1,Y1,Z1,LineSpec,...) plot3(...,'PropertyName',PropertyValue,...) h = plot3(...)
-1
-0.5
0
0.5
1
-1
-0.5
0
0.5
1
0
10
20
30
40
sin(t)cos(t)
t
t = 0:pi/50:10*pi; plot3(sin(t),cos(t),t) xlabel('sin(t)') ylabel('cos(t)') zlabel('t') grid on axis square
Ejemplo
GRFICOS EN MATLAB
t=linspace(0,8*pi,300); plot3(sin(t),cos(t),t),grid on quiver3(sin(t),cos(t),t,cos(t),-sin(t),ones(1,300))
quiver3 (x,y,z,u,v,w): grafica la velocidad con (x,y,z) es la posicin y (u,v,w) es la velocidad
-1
-0.5
0
0.5
1
-1
-0.5
0
0.5
10
5
10
15
20
25
30
GRFICOS EN MATLAB
-1.5
-1
-0.5
0
0.5
1
1.5 -1.5
-1
-0.5
0
0.5
1
1.5
0
5
10
15
20
25
30
>> [X,Y] = meshgrid(1:3,10:14)
X = 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 Y = 10 10 10 11 11 11 12 12 12 13 13 13 14 14 14
-2
-1
0
1
2
-2
-1
0
1
2-0.5
0
0.5
>> [X,Y] = meshgrid(-2:.2:2, -2:.2:2); >> Z = X .* exp(-X.^2 - Y.^2); >> surf(X,Y,Z)
meshgrid : genera una matriz X cuyas filas son del vetor x, y una matriz Y cuyas columnas son el
vector y
Trazado de superficie y mallado
surf: genera la grfica de superficie
GRFICOS EN MATLAB
Trazado de superficie y mallado
meshgrid (x)=meshgrid(x,x)
-10
-5
0
5
10
-10
-5
0
5
10-0.5
0
0.5
1
XY
Z
-10
-5
0
5
10
-10
-5
0
5
10-0.5
0
0.5
1
XY
Z
[X,Y] = meshgrid(-8:.5:8); R = sqrt(X.^2 + Y.^2) + eps; Z = sin(R)./R; figure mesh(X,Y,Z) xlabel('X'), ylabel('Y'), zlabel('Z') figure mesh(X,Y,Z,'EdgeColor','black') xlabel('X'), ylabel('Y'), zlabel('Z')
GRFICOS EN MATLAB
-2
0
2
-2
0
2
-0.5
0
0.5
X
X/exp(X2 + Y2)
Y
syms X Y Z Z = X*exp(-X^2-Y^2); ezsurf(Z)
ezsurf :
GRFICOS EN MATLAB
view(az,el) : Fija el ngulo de visin especificando el azimut az y la elevacin el.
view([x,y,z]) : Coloca la vista en la coordenada (x,y,z)
(X,Y,Z)
GRFICOS EN MATLAB
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2-2
-1
0
1
2
-0.5
0
0.5
>> [X,Y] = meshgrid(-2:.2:2, -2:.2:2); >> Z = X .* exp(-X.^2 - Y.^2); >> surf(X,Y,Z) >> view(10,70)
GRFICOS EN MATLAB
azimut y elevacin estn en grados sexagesimales
010
20
30
0
10
20
30
-10
-5
0
5
10
Freezing
Cold
Cool
Neutral
Warm
Hot
Burning
Nuclear
colorbar : Aade una barra de color a la figura actual
surf(peaks(30)) colorbar('YTickLabel',... {'Freezing','Cold','Cool','Neutral',... 'Warm','Hot','Burning','Nuclear'})
GRFICOS EN MATLAB
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2-2
-1.5
-1
-0.5
0
0.5
1
1.5
2
Ejemplo
-2
-1
0
1
2
-2
-1
0
1
2-0.5
0
0.5
xa = -2:.2:2; ya = xa; [X Y] = meshgrid(xa,ya); Z = X.*exp(- X.^2 - Y.^2 ); figure(1) surf(X,Y,Z) figure(2) contour(X,Y,Z)
GRFICOS EN MATLAB
clear;lc; [x,y]=meshgrid(-3:0.1:3,-2:0.5:2); figure(1) z=exp(-x.^2-y.^2); h=waterfall(x,y,z); set(h,'facecolor','blue',... 'edgecolor','blue',... 'facealpha',0.1); grid on xlabel('eje X') ylabel('eje Y') zlabel('eje Z') axis tight
GRFICOS EN MATLAB Waterfall : Trazado en cascada
surfnorm : Calcula y muestra las superficies normales en 3-D
clear all;clc;clf; [x,y]=meshgrid(-3:.2:3,-4:.2:4); z=y.^2.*exp(-x.^2-0.3*y.^2); % generamos los vectores normales % en cada punto [u,v,w]=surfnorm(x,y,z); %Grafiquemos la superficie surf(x,y,z,'edgecolor','none',... 'facecolor','yellow'); camlight left; lighting phong; hold on % graficamos los vectores normales % (u,v,w) en cada (x,y,z) con un % factor de escala de 0.5 quiver3(x,y,z,u,v,w,0.5) hold off axis equal
GRFICOS EN MATLAB
clc;clf; [x,y]=meshgrid(-2:.2:2,-4:.2:4); f=y.^2.*exp(-x.^2-0.3*y.^2); [dx,dy]=gradient(f,.2,.2); figure(1) contour(x,y,f,10); hold on quiver(x,y,dx,dy); hold off grid on
Gradient: Devuelve el gradiente numrico de una funcin.
[FX,FY] = gradient(F) : Devuelve los componentes x e y del gradiente numrico de 2 dimensiones
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2-4
-3
-2
-1
0
1
2
3
4
GRFICOS EN MATLAB
Grficas de contornos o curvas de nivel
GRFICOS EN MATLAB
XY
X exp(-X2-Y2)
-3 -2 -1 0 1 2 3-3
-2
-1
0
1
2
3
syms X Y Z; Z = X*exp(- X^2 - Y^2 ); ezcontour(Z)
GRFICOS EN MATLAB
-2
0
2
-2
0
2
-0.5
0
0.5
X
X/exp(X2 + Y2)
Y
-2
-1
0
1
2
0
2
4
6
82
4
6
8
10
x=[-2 0 2 0 -2]; y=[4 8 4 0 4]; z=[3 5 10 5 3]; figure fill3(x,y,z,'m') grid on
fill3(x,y,z,color) : Dibuja un polgono como fill, pero es de cuatro argumentos
GRFICOS EN MATLAB
-0.2
-0.2
-0.2
-0.2
-0.2
-0.2
-0.2
-0.2
-0.1
-0.1
-0.1
-0.1
-0.1
-0.1
-0.1
-0.1
0
0
0
0
0
0 0
0
0
00
0
0
0
0
0
0
0
0
0
0
0
0.1
0.10.1
0.1
0.1
0.1
0.1
0.1
0.1
0.10.1
0.1
0.10.1
0.1
0.1
0.1
0.2
0.2
0.2
0.30
.3
0.4
0.4
0.5
0.5 0.5
0.6
0.6 0.
60.7
0.7
0.8
0.8
-10 -8 -6 -4 -2 0 2 4 6 8 10-10
-8
-6
-4
-2
0
2
4
6
8
10
-10 -5 0 5 10 -10-5
05
10-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
[x,y]=meshgrid(-10:0.2:10) Z=sin(sqrt(X.^2+Y.^2))./sqrt(X.^2+Y.^2+0.1); figure(1) mesh(X,Y,Z) figure(2) surf(X,Y,Z) view([10,-12,2]) figure(3) [C,h]=contour(X,Y,Z); clabel(C,h)
clabel: Aade etiquetas de altura a los grficos de contorno
GRFICOS EN MATLAB
contour3(X,Y,Z,n) : Dibuja el contorno de la superficie con n niveles de contorno
-10
-5
0
5
10
-10
-5
0
5
10-0.5
0
0.5
1
-10
-5
0
5
10
-10
-5
0
5
10-0.5
0
0.5
1
[X,Y]=meshgrid(-10:0.5:10); Z=sin(sqrt(X.^2+Y.^2))./sqrt(X.^2+Y.^2+0.1); figure(1) mesh(X,Y,Z) figure(2) contour3(X,Y,Z,30)
GRFICOS EN MATLAB
colormap(M) :
Dond M puede ser:
-10
-5
0
5
10
-10
-5
0
5
10-0.5
0
0.5
1
[X,Y]=meshgrid(-10:0.5:10); Z=sin(sqrt(X.^2+Y.^2))./sqrt(X.^2+Y.^2+0.1); surf(X,Y,Z) colormap(Summer)
GRFICOS EN MATLAB
El mapa de colores (colormap) es la representacin de los colores en una matriz de m-por-3 de npumeros reales entre 0.0 y 1.0; cada fila es un vector RGB que define un color
Ejemplo:
[X,Y,Z] = peaks(30); surfc(X,Y,Z) colormap hsv axis([-3 3 -3 3 -10 5])
-3-2
-10
12
3
-2
0
2
-10
-5
0
5
GRFICOS EN MATLAB
00.2
0.40.6
0.81
0
0.2
0.4
0.6
0.80
0.5
1
1.5
2
x=linspace(0,1,10); y=x./2; z=sin(x)+cos(y); figure stem3(x,y,z)
stem3 (x,y,z): Traza la secuencia de datos Z en valores especificados por X e Y. X,Y y Z deben ser todos vetores o matrices del mismo tamao
Trazados stem tridimensionales
00.2
0.40.6
0.81
0
0.2
0.4
0.6
0.80
0.5
1
1.5
2
x=linspace(0,1,10); y=x./2; z=sin(x)+cos(y); figure stem3(x,y,z, 'fill')
GRFICOS EN MATLAB
-1
-0.5
0
0.5
1
-1
-0.5
0
0.5
1
-1
-0.5
0
0.5
1
ESFERA
Algunas superficies
esphere
>>sphere,axis square,title('ESFERA')
cylinder (R): Genera un cilindro de revolucin de radio R, dicho radio puede ser variable R(t)
-2
-1
0
1
2
-2
-1
0
1
20
0.2
0.4
0.6
0.8
1
>> t=linspace(0,2,20);r=sqrt(t);cylinder(r)
GRFICOS EN MATLAB
Representar:
Graficando un toroide circular
clear all;clc; a=10; r=4.5; [u,v]=meshgrid(0:pi/16:2*pi); x=(a+r*cos(v)).*cos(u); y=(a+r*cos(v)).*sin(u); z=r*sin(v); surfl(x,y,z); shading interp colormap copper grid on axis equal
-10
-5
0
5
10
-10
-5
0
5
10
-4
-2
0
2
4
GRFICOS EN MATLAB
Superficie iluminada Basado en mapa de colores
Elimina sus contornos
Estilo para Mapeo de colores
clc;clf;clear; %Paraboloide paramtrico du=0:pi/32:2*pi;dv=0:pi/32:pi/4; [u,v]=meshgrid(du,dv); x=tan(v).*cos(u); y=tan(v).*sin(u); z=tan(v).^2; %Esfera parametrica du1=0:pi/32:2*pi;dv1=-pi/2:pi/32:pi/2; [u1,v1]=meshgrid(du1,dv1); x1=cos(v1).*cos(u1); y1=cos(v1).*sin(u1); z1=sin(v1); %grafica surfl(x,y,z); hold on h1=surfl(x1,y1,z1); hold off set(h1,'facealpha',0.7) shading interp; colormap copper title('Superficies interconectadas)
GRFICOS EN MATLAB Interseccin de un paraboloide y una esfera