Escuela Superior Politcnica deChimborazoFacultad de Informtica y
ElectrnicaHerramientas EdaGraficas en 2 y 3 DEduardo MoralesJuan Guaranga 2. 2. Objetivo:PRESENTAR MATLAB COMO UNA HERRAMIENTA AUXILIARPARA EL ANLISIS Y SOLUCIN DE PROBLEMAS.SELECCIONANDO Y ADECUANDO LAS DISTINTAS FUNCIONESA LAS NECESIDADES PARTICULARES DE CURSOS DELDEPARTAMENTO.LAS INSTRUCCIONES BSICAS QUE UTILIZA MATLABPARA DIBUJAR LA GRFICA DE UNA FUNCIN DE UNAVARIABLE SON LOS SIGUIENTES: 3. 3. Grficos 2D y 3DFunciones grficas 2D y 3D elementales 2D: plot() crea un grfico a partir de vectores con escalaslineales sobre ambos ejes,>> plot(X,Y,opcin) (opcin: permite elegir color y trazo de la curva) hold on: permite pintar ms grficos en la misma figura (sedesactiva con hold off) grid activa una cuadrcula en el dibujo. Escribiendo de nuevogrid se desactiva. 2D: loglog() escala logartmica en ambos ejes, semilogx():escala lineal en el eje de ordenadas y logartmica en el ejede abscisas, semilogy(): escala lineal en abscisas ylogartmica en ordenadasEjemplo: main_dibujos.m, y ver en Demos: Graphics 4. 4. Grficos 2D y 3DFunciones grficas 2D y 3D elementales 2D: subplot(n,m,k) subdivide una ventana grfica se puedeen m particiones horizontales y n verticales y k es lasubdivisin que se activa. 2D: polar(ngulo,r) para pintar en polares 2D: fill(x,y,opcin) dibuja una curva cerrada y la rellena delcolor que se indique en opcin 3D: plot3 es anloga a su homloga bidimensional plot. plot3(X,Y,Z, opcin) 5. 5. Grficos 2D y 3DEleccin de la escala de los ejes axis([x0 x1 y0 y1]) (2D), axis([x0 x1 y0 y1 z0 z1]) (3D) axis auto: devuelve la escala a la de defecto axis off: desactiva los etiquetados de los ejes desapareciendo los ejes,sus etiquetas y la malla, axis on: lo activa de nuevo axis equal: los mismos factores de escala para los dos ejes axis square: cierra con un cuadrado la regin delimitada por los ejes decoordenadas actuales. Para elegir las etiquetas que aparecen en los ejes:set(gca, XTick,-pi:pi/2,pi) %gca:get current axisset(gca, XTicklabel,({-pi,- pi/2,0,pi/2,pi}) 6. 6. Grficos 2D y 3DFunciones para aadir ttulos a la grfica title(ttulo) aade un ttulo al dibujo. Para incluir en el texto elvalor de una variable numrica es preciso transformarlamediante :int2str(n) convierte el valor de la variable entera n en carcternum2str(x) convierte el valor de la variable real o compleja x encarcter. Ejemplo: title(num2str(x)) xlabel(texto) aade una etiqueta al eje de abscisas. Conxlabel off desaparece. Lo mismo ylabel(texto) o zlabel(texto) text(x,y,texto) introduce texto en el lugar especificado por lascoordenadas x e y. Si x e y son vectores, el texto se repite porcada par de elementos. gtext(texto) introduce texto con ayuda del ratn. 7. 7. Grficos 2D y 3DFunciones de Matlab para grficos 2D y 3D Imprimir grficos: Print (botn File en ventana grfica) Guardar grficos: Save (botn File en ventana grfica): Se creaun fichero .fig que podr volver a editarse y modificarse Exportar grficos: Export (botn File en ventana grfica) figure(n): Llamar una nueva figura o referirnos a una figura yahecha close all borra todas las figuras, close(figure(n)) una en concreto 8. 8. Ejercicio IRepresentar las funciones:y1= sin(3 x)/exy2=cos(3 x)/excon x variando entre 0 y 3 ,obteniendo una nica figura de la forma: 9. 9. Grficos 2D y 3DRepresentacin grfica de superficies Creacin de una malla a partir de vectores [X,Y]=meshgrid(x,y) Grfica de la malla construida sobre la superficie Z(X,Y):mesh(X,Y,Z), meshc(X,Y,Z) (dibuja adems lneas de nivel enel plano z=0) Grfica de la superficie Z(X,Y): surf(X,Y,Z), surfc(X,Y,Z) pcolor(Z) dibuja proyeccin con sombras de color sobre elplano (la gama de colores est en consonancia con lasvariaciones de Z) contour(X,Y,Z,v) y contour3(X,Y,Z,v) generan las lneas de nivelde una superficie para los valores dados en v. Para etiquetarlas lneas, primero cs=contour(Z) (para saber los valores delcontorno) y luego clabel(cs) o directamente clabel(cs,v) 10. 10. Grficos 2D y 3DRepresentacin grfica de superficies Diferentes formas de representar los polgonos coloreados: shading flat: sombrea con color constante para cadapolgono. shading interp: sombrea calculado por interpolacin decolores entre los vrtices de cada polgono shading faceted: sombreado constante con lneas negrassuperpuestas (opcin por defecto) hidden off (desactiva la desaparicin de lneas escondidas),hidden on (lo activa) Manipulacin de grficos view(azimut, elev), view([xd,yd,zd]) rotate(h,d,a) o rotate(h,d,a,o), h es el objeto, d es un vectorque indica la direccin, a un ngulo y o el origen derotacin En ventana grfica: View (camera toolbar) 11. 11. Grficos 2D y 3DTransformacin de coordenadas [ang,rad]=cart2pol(x,y), de cartesianas a polares [ang,rad,z]=cart2pol(x,y,z), de cartesianas a cilindricas [x,y]=pol2cart(ang,rad), de polares a cartesianas [x,y,z]=pol2cart(ang,rad,z), de cilindricas a cartesianas [angx,angz,rad]=cart2sph(x,y,z), de cartesianas a esfericas [x,y,z]=aph2cart(angx,angz,rad), de esfericas acartesianas 12. 12. Grficos 2D y 3DCreacin de pelculas Una pelcula se compone de varias imgenes (frames) getframe se emplea para guardar todas esas imgenes.Devuelve un vector columna con la informacin necesariapara reproducir la imagen que se acaba de representar, porejemplo con la funcin plot. Esos vectores se almacenan enuna matriz M. movie(M,n,fps) representa n veces la pelcula almacenadaen M a una velocidad de fps imgenes por segundoX=0:0.01:2*pi;for j=1:10plot(x,sin(j*x)/2)M(j)=getframe;endmovie(M,4,6) 13. 13. Grficas xy SencillasSe explicar la graficacin xy sencilla con un ejemplo. Suponga quequeremos graficar la informacin resultante de un experimento:Ensayo Distancia1 58.52 63.83 64.24 67.35 71.56 88.37 90.18 90.69 89.510 90.4 14. 14. Grficas xy SencillasAlmacenamos las dos columnas en vectores de datos:x= [1 2 3 4 5 6 7 8 9 10];y= [58.5 63.8 64.2 67.3 71.5 88.3 90.1 90.6 89.5 90.4];Para graficar los datos:plot(x,y) 15. 15. Grficas xy Sencillas 16. 16. Grficas xy SencillasPara agregar informacin a la grfica:title(Experimentos de Laboratorio)xlabel(Ensayo)ylabel(Distancia, m)grid onNote las diferencias en las grficas. 17. 17. Grficas xy Sencillas 18. 18. Grficas Lineales y LogartmicasLos comandos de Matlab para generar grficas lineales ylogartmicas de los vectores x y y son los siguientes:semilogx(x,y) Genera una grfica de los valores x y yusando una escala logartmica para x y una escala linealpara y.semilogy(x,y) Genera una grfica de los valores x y yusando una escala logartmica para y y una escala linealpara x.loglog(x,y) Genera una grfica de los valores x y yusando una escala logartmica tanto para x como para y. 19. 19. Grficas MltiplesPara generar curvas mltiples en la misma grfica seusan mltiples argumentos en un comando degraficacin,plot(x,y,w,z)donde las variables x, y, w y z son vectores. El comandotraza la curva correspondiente a x vs y, y luego w vs z.Matlab selecciona diferentes tipos de lnea para distinguirlas lneas. 20. 20. Grficas MltiplesOtra forma es graficar una matriz con columnasmltiples. Cada columna se graficar contra un vector x.x= 0:0.1:5;w= x;z= w.^2 - 0.9*x +7;f(1,:)= x.^2 - 3*x + 2;f(2,:)= 2*x.^2 + x - 3;subplot(2,1,1)plot(x,f(1,:),w,z),title(Grafica con dos curvas:plot(x,f(1,:),w,z))subplot(2,1,2)plot(x,f), title(Grafica de multiples funciones:plot(x,f)) 21. 21. Grficas Mltiples 22. 22. Estilo de Lneas y MarcasEl comando plot(x,y) genera una grfica de lneas queconecta los puntos representados por los vectores.Podemos seleccionar otros tipos de lnea y/o depuntos. La siguiente tabla muestra algunas opciones:Tipo de lnea Indicador Tipo de punto Indicadorcontinua - punto .guiones -- ms +punteada : estrella *guiones-puntos -. crculo omarca x 23. 23. Estilo de Lneas y MarcasLa seleccin del tipo de lnea o punto se haceagregando un argumento al comando de graficacin:plot(x,y,o) 24. 24. Escala de los EjesMatlab fija automticamente la escala de los ejesajustndola a los valores de los datos. Podemoscambiar las escalas con el comando axis:axis Mantiene la escala del eje actual para grficassubsecuentes. Una segunda ejecucin delcomando regresa el sistema al escalado automtico.axis([xmin xmax ymin ymax])Especifica la escala del eje usando los valores deescala que estn definidos en el comando.El comado plot precede al comando axis. 25. 25. SubgrficasEl comando subplot permite dividir la ventana degrficos en subventanas.subplot(x, y, n) Divide la ventana de grficas enun arreglo de x por y subventanas y define lasubventana n para colocar la grfica que se generedespus del comando subplot.subplot(2,1,1), plot(x,y)La grfica definida por el comando plot(x,y) secolocar en la primera subventana de las cuatrodefinidas por el comando subplot(2,2,1). 26. 26. Matlab ofrece 3 tipos de graficacin para tresdimensiones:Grficas de lneasGrficas de contornoGrficas de malla 27. 27. Grficas de lneasLas grficas de lneas son creadas usando el comadoplot3, el cual es la version tridimensional de plot 28. 28. Grficas de contornoLas grficas de controno enrealidad son grficas en dosdimensiones, con lneasuniendo puntos con igual valoren z. 29. 29. Grficas de mallaEn las grficas de malla,cada punto se une a susvecinos formando unaespecie de tapete. 30. 30. Ejemplos:Simple3Dclfx=-1:.1:1;y=- 2:.1:2;[X,Y]=meshgrid(x,y);z=X.^4+(Y/2).^4;subplot(121), contour(z)subplot(122), mesh(z)