Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Graficas en 2 d y 3d matlab
1. Escuela Superior Politécnica de
Chimborazo
Facultad de Informática y Electrónica
Herramientas Eda
Graficas en 2 y 3 D
Eduardo Morales
Juan Guaranga
2. 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:
3. 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
4. Gráficos 2D y 3D
Funciones 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’)
5. 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 axis
set(gca, ‘XTicklabel’,({‘-pi’,’-pi/2’,0,’pi/2’,’pi’})
6. Gráficos 2D y 3D
Funciones 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ácter
num2str(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.
7. Gráficos 2D y 3D
Funciones 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
8. 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:
9. Gráficos 2D y 3D
Representació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)
10. Gráficos 2D y 3D
Representació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)
11. Gráficos 2D y 3D
Transformació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
12. Gráficos 2D y 3D
Creació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)
13. 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
14. 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)
16. 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.
18. 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.
19. 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.
20. 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)')
22. 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
23. 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’)
24. 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.
25. 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).
26. Matlab ofrece 3 tipos de graficación para tres
dimensiones:
•Gráficas de líneas
•Gráficas de contorno
•Gráficas de malla
27. 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
28. 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.
29. Gráficas de malla
En las gráficas de malla,
cada punto se une a sus
vecinos formando una
especie de tapete.