graficas en 2 d y 3d matlab
DESCRIPTION
Graficas en 2 y 3d matlab Por Juan Guaranga y Eduardo Morales.TRANSCRIPT
Escuela Superior Politécnica de Chimborazo
Facultad de Informática y Electrónica
Herramientas EdaGraficas en 2 y 3 D
Eduardo MoralesJuan Guaranga
Objetivo:PRESENTAR MATLAB COMO UNA HERRAMIENTA AUXILIAR PARA EL ANÁLISIS Y SOLUCIÓN DE PROBLEMAS. SELECCIONANDO Y ADECUANDO LAS DISTINTAS FUNCIONES A LAS NECESIDADES PARTICULARES DE CURSOS DEL DEPARTAMENTO.
LAS INSTRUCCIONES BÁSICAS QUE UTILIZA MATLAB PARA DIBUJAR LA GRÁFICA DE UNA FUNCIÓN DE UNA VARIABLE SON LOS SIGUIENTES:
Gráficos 2D y 3DFunciones gráficas 2D y 3D elementales
2D: plot() crea un gráfico a partir de vectores con escalas lineales sobre ambos ejes,
>> plot(X,Y,’opción’) (opción: permite elegir color y trazo de la curva)
hold on: permite pintar más gráficos en la misma figura (se desactiva con hold off)
grid activa una cuadrícula en el dibujo. Escribiendo de nuevo grid se desactiva.
2D: loglog() escala logarítmica en ambos ejes, semilogx(): escala lineal en el eje de ordenadas y logarítmica en el eje de abscisas, semilogy(): escala lineal en abscisas y logarítmica en ordenadas
Ejemplo: main_dibujos.m, y ver en Demos: Graphics
Gráficos 2D y 3DFunciones gráficas 2D y 3D elementales
2D: subplot(n,m,k) subdivide una ventana gráfica se puede en m particiones horizontales y n verticales y k es la subdivisión que se activa.
2D: polar(ángulo,r) para pintar en polares
2D: fill(x,y,’opción’) dibuja una curva cerrada y la rellena del color que se indique en ‘opción’
3D: plot3 es análoga a su homóloga bidimensional plot.» plot3(X,Y,Z, ’opción’)
Gráficos 2D y 3DElección 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 región delimitada por los ejes de coordenadas 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’})
Gráficos 2D y 3DFunciones para añadir títulos a la gráfica
title('título') añade un título al dibujo. Para incluir en el texto el valor de una variable numérica es preciso transformarla mediante :
int2str(n) convierte el valor de la variable entera n en carácternum2str(x) convierte el valor de la variable real o compleja x
en carácter. Ejemplo: title(num2str(x))
xlabel(‘texto’) añade una etiqueta al eje de abscisas. Con xlabel off desaparece. Lo mismo ylabel(‘texto’) o zlabel(‘texto’)
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.
gtext('texto') introduce texto con ayuda del ratón.
Gráficos 2D y 3DFunciones de Matlab para gráficos 2D y 3D
Imprimir gráficos: Print (botón File en ventana gráfica)
Guardar gráficos: Save (botón File en ventana gráfica): Se crea un fichero .fig que podrá volver a editarse y modificarse
Exportar gráficos: Export (botón File en ventana gráfica)
figure(n): Llamar una nueva figura o referirnos a una figura ya hecha
close all borra todas las figuras, close(figure(n)) una en concreto
Ejercicio IRepresentar las funciones:
y1= sin(3 π x)/ex
y2=cos(3π x)/ex
con x variando entre 0 y 3 π,obteniendo una única figura de la forma:
Gráficos 2D y 3DRepresentación gráfica de superficies
Creación de una malla a partir de vectores [X, Y]=meshgrid(x,y)
Gráfica de la malla construida sobre la superficie Z(X,Y): mesh(X,Y,Z), meshc(X,Y,Z) (dibuja además líneas de nivel en el plano z=0)
Gráfica de la superficie Z(X,Y): surf(X,Y,Z), surfc(X,Y,Z) pcolor(Z) dibuja proyección con sombras de color sobre el
plano (la gama de colores está en consonancia con las variaciones de Z)
contour(X,Y,Z,v) y contour3(X,Y,Z,v) generan las líneas de nivel de una superficie para los valores dados en v. Para etiquetar las líneas, primero cs=contour(Z) (para saber los valores del contorno) y luego clabel(cs) o directamente clabel(cs,v)
Gráficos 2D y 3DRepresentación gráfica de superficies Diferentes formas de representar los polígonos coloreados:
shading flat: sombrea con color constante para cada polígono.
shading interp: sombrea calculado por interpolación de colores entre los vértices de cada polígono
shading faceted: sombreado constante con líneas negras superpuestas (opción por defecto)
hidden off (desactiva la desaparición de líneas escondidas), hidden on (lo activa)
Manipulación de gráficos view(azimut, elev), view([xd,yd,zd]) rotate(h,d,a) o rotate(h,d,a,o), ‘h’ es el objeto, ‘d’ es un
vector que indica la dirección, ‘a’ un ángulo y ‘o’ el origen de rotación
En ventana gráfica: View (camera toolbar)
Gráficos 2D y 3DTransformación 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 a cartesianas
Gráficos 2D y 3DCreación de películas
Una película se compone de varias imágenes (frames)
getframe se emplea para guardar todas esas imágenes. Devuelve un vector columna con la información necesaria para reproducir la imagen que se acaba de representar, por ejemplo con la función plot. Esos vectores se almacenan en una matriz M.
movie(M,n,fps) representa n veces la película almacenada en M a una velocidad de fps imágenes por segundo
X=0:0.01:2*pi;
for j=1:10
plot(x,sin(j*x)/2)
M(j)=getframe;
end
movie(M,4,6)
Gráficas xy Sencillas
Se explicará la graficación xy sencilla con un ejemplo. Suponga que
queremos graficar la información resultante de un experimento:
Ensayo Distancia
1 58.5
2 63.8
3 64.2
4 67.3
5 71.5
6 88.3
7 90.1
8 90.6
9 89.5
10 90.4
Gráficas xy Sencillas
Almacenamos 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)
Gráficas xy Sencillas
Gráficas xy Sencillas
Para agregar información a la gráfica: title(‘Experimentos de Laboratorio’)xlabel(‘Ensayo’)ylabel(‘Distancia, m’)grid on Note las diferencias en las gráficas.
Gráficas xy Sencillas
Gráficas Lineales y Logarítmicas
Los comandos de Matlab para generar gráficas lineales y logarítmicas de los vectores x y y son los siguientes:
semilogx(x,y) Genera una gráfica de los valores x y y usando una escala logarítmica para x y una escala lineal para y. semilogy(x,y) Genera una gráfica de los valores x y y usando una escala logarítmica para y y una escala lineal para x. loglog(x,y) Genera una gráfica de los valores x y y usando una escala logarítmica tanto para x como para y.
Gráficas Múltiples
Para generar curvas múltiples en la misma gráfica se
usan múltiples argumentos en un comando de
graficación, plot(x,y,w,z)
donde las variables x, y, w y z son vectores. El comando
traza la curva correspondiente a x vs y, y luego w vs z.
Matlab selecciona diferentes tipos de línea para distinguir
las líneas.
Gráficas Múltiples
Otra forma es graficar una matriz con columnas
múltiples. 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)')
Gráficas Múltiples
Estilo de Líneas y Marcas
El comando plot(x,y) genera una gráfica de líneas que conecta los puntos representados por los vectores. Podemos seleccionar otros tipos de línea y/o de puntos. La siguiente tabla muestra algunas opciones:
Tipo de línea Indicador Tipo de punto Indicador
continua - punto .
guiones -- más +
punteada : estrella *
guiones-puntos -. círculo o
marca x
Estilo de Líneas y Marcas
La selección del tipo de línea o punto se hace agregando un argumento al comando de graficación:
plot(x,y,’o’)
Escala de los Ejes
Matlab fija automáticamente la escala de los ejes ajustándola a los valores de los datos. Podemos cambiar las escalas con el comando axis:
axis Mantiene la escala del eje actual para gráficas subsecuentes. Una segunda ejecución del comando regresa el sistema al escalado automático.
axis([xmin xmax ymin ymax])Especifica la escala del eje usando los valores de escala que están definidos en el comando. El comado plot precede al comando axis.
Subgráficas
El comando subplot permite dividir la ventana de gráficos en subventanas. subplot(x, y, n) Divide la ventana de gráficas en un arreglo de x por y subventanas y define la subventana n para colocar la gráfica que se genere después del comando subplot. subplot(2,1,1), plot(x,y) La gráfica definida por el comando plot(x,y) se colocará en la primera subventana de las cuatro definidas por el comando subplot(2,2,1).
Matlab ofrece 3 tipos de graficación para tres dimensiones:
•Gráficas de líneas
•Gráficas de contorno
•Gráficas de malla
Gráficas de líneas
Las gráficas de líneas son creadas usando el comado
plot3, el cual es la version tridimensional de plot
Gráficas de contorno
Las gráficas de controno en
realidad son gráficas en dos
dimensiones, con líneas
uniendo puntos con igual valor
en z.
Gráficas de malla
En las gráficas de malla,
cada punto se une a sus
vecinos formando una
especie de tapete.
Ejemplos:
Simple3D
clfx=-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)