Matlab graficas

23
Gráficas en Matlab NOMBRES: Edwin Machado 205 Janeth Yumbillo 541 MATERIA: Herramientas EDA

Transcript of Matlab graficas

Page 1: Matlab graficas

Gráficas en Matlab

NOMBRES: Edwin Machado205Janeth Yumbillo 541MATERIA: Herramientas EDA

Page 2: Matlab graficas

Matlab ofrece gran número de posibilidades a la hora de realizar representaciones gráficas. Dibuja curvas planas y superficies.Por las características propias del programa, los gráficos, en concreto los 2D, están orientados a la representación gráfica de vectores. Se utiliza una ventana especial para la creación de los gráficos: la ventana gráfica o de dibujo y, dichos gráficos se guardan en ficheros de extensión .fig.

Page 3: Matlab graficas

Funciones básicas para las gráficas 2D

El comando básico para la representación de gráficos 2D es el comando plot. Su sintaxis puede ser: plot(x,y): dibuja el conjunto de puntos (x,y) donde las abscisas de los puntos se encuentran en el vector x y las ordenadas en el y. Para representar una función f(x) es necesario conocer los valores de puntos de la forma (x,f(x)). Para ello puede seguirse alguno de estos caminos: - Definir un vector x con el rango de variación donde se desea pintar la función. Para ello puede ser muy útil el comando linspace(xmin,xmax,n).

Page 4: Matlab graficas

Crear el vector y evaluando f en x>> x=linspace(0,10,100); >> y=sin(x); >> plot(x,y)También es posible dibujar una función con el comando fplot cuya sintaxis es la siguiente: fplot(‘f(x)’,[xmin,xmax])Si se desea representar varias funciones a la vez las opciones son: - plot(x,y,x,z) donde x el vector de las abscisas, común para las dos representaciones, y es el de las ordenadas de la primera representación y z las de la segunda. - fplot(‘[f1(x),f2(x),...]’,[xmin,xmax]) donde f1, f2, … son las funciones a representar en el intervalo de variación marcado por xmin y xmax. - Mediante el comando: hold on, hold off. Todos los gráficos que se ordene dibujar entre los comandos hold on y hold off se representan en la misma figura. Si hay una figura abierta se dibujan en ésta.

Page 5: Matlab graficas

Mediante el comando: hold on, hold off. Todos los gráficos que se ordene dibujar entre los comandos hold on y hold off se representan en la misma figura. Si hay una figura abierta se dibujan en ésta.Ejemplo: >> hold on>> x=[-3*pi:1:3*pi]; >> plot(x,sin(x)) >> plot(x,tan(x),'r') >> hold off- El comando subplot. Una ventana gráfica se puede dividir en m particiones horizontales y n verticales para representar mxn figuras. Cada una de las particiones tendrá sus ejes aunque las propiedades serán comunes a todas ellas. La sintaxis es: subplot(m,n,i), donde m y n son el número de subdivisiones e i la subdivisión activa. Por ejemplo: >> x=0:0.1:2*pi; >> y=sin(x);z=cos(x);t=exp(-x);v=x^2; >> subplot(2,2,1), plot(x,y) 51>> subplot(2,2,2), plot(x,z) >> subplot(2,2,3), plot(x,t) >> subplot(2,2,4), plot(x,v)

Page 6: Matlab graficas

Otras funciones con matlab Opciones de dibujo . Hemos

visto que el comando plot(x,y) dibuja los gráficos con unas características predefinidas en el programa, es posible alterarlas a partir de plot(x,y,s) donde s se compone de dos dígitos entre comillas.

>> plot(x,y,'-*g') Los colores vienen dados por:

y: amarillo, g: verde, m: magenta, b: azul, c:

cían, w: blanco, r: rojo, k: negro.

Se puede modificar el grosor de línea incluyendo la cadena: ‘Linewidth’,

número_indicativo_del_grosor. Por ejemplo: plot(x,y,'linewidth',2)

También aquí Matlab tiene sus opciones por defecto. En muchas ocasiones es interesante alterarlas.

Para definir otros se utiliza el comando axis cuya sintaxis es: axis ([xmin,xmax,ymin,ymax]). axis(‘auto’) devuelve la escala al valor por defecto.

Destacar que: axis off elimina los ejes del dibujo y axis on los incorpora.

- Entrada de puntos con el ratón

Matlab permite introducir las coordenadas de los puntos sobre los que se encuentra el cursor, al pinchar o al pulsar alguna tecla. El comando que lo realiza es ginput. Algunas formas de utilizarlo son: [x,y]=ginput: lee los puntos cada vez que se pincha o se pulsa alguna tecla.

Finaliza al pulsar intro. [x,y]=ginput(n): lee las coordenadas de n puntos

Page 7: Matlab graficas

La ventana gráfica de Matlab.

La mayoría de las opciones de cambio en una gráfica presentadas con anterioridad, pueden realizarse desde la pantalla de dibujo

En el menú edit aparecen entre otros los comandos Figure Properties, axes Properties y Current Object Properties, con ellos se abre paso a los editores correspondientes donde se nos da la posibilidad de cambiar las opciones de dibujo

Page 8: Matlab graficas

Superposición de gráficosUsando line (x, y,

'parametros', 'valor‘) Parametros, color linestyle, Marker.

%Ejemplo de hold x=linspace(0, 2*pi, 100)

y1=sin(x)plot(x, y1)y2= x- (x.^3)/6 + (x.^5)/120line(x, y2, 'marker', 'o')line(x, x, 'linestyle', '--')axis ([ 0 5 -1 5])legend('sin(t)', 'Aproximacion

3erorden', 'lineal')

Page 9: Matlab graficas

Objetos gráficosPodemos añadir objetos

al grafico actual:xlabel('etiqueta del eje x') ylabel('etiqueta eje y') title('titulo del grafico') text (x, y, 'texto') Si x e y son vectores, el

texto se repite. Si texto es una matrix de cadenas, de la misma dimensión que x e y, se sitúa cada texto en una posición

gtext('texto'): la posición se indica con el ratón.

(solo en Matlab)

Page 10: Matlab graficas

Comandos para los Gráficos En primer lugar, comandos

genéricos y comandos orientados a gráficos bidimensionales: – figure(n): Las representaciones de gráficos en matlab se realizan en ventanas graficas. En un momento dado puede haber varias ventanas graficas abiertas. La función figure se utiliza para abrir una nueva ventana grafica que será numerada de acuerdo con el parámetro, o bien, si ya existe una ventana con ese numero, se convertirá en la ventana grafica activa, donde se realizará la próxima representación grafica.

– clf: Limpia la ventana gráfica activa.

– close(n): Para cerrar una ventana gráfica.

close all cierra todas las ventanas gráficas.

– title: permite añadir un título a la grafica

– xlabel: añadir una etiqueta al eje horizontal de la grafica

– ylabel: añadir etiqueta al eje vertical

– grid: añadir una rejilla– axis: permite modificar los

límites de los ejes horizontal y vertical

– text: añadir un texto en una posición cualquiera de la grafica

– gtext: igual que text pero permite seleccionar la ubicación del texto mediante el ratón.

Page 11: Matlab graficas

Gráficos 3D en MATLABLa versión 3D de plot esplot3(u1, v1, w1, c1, u2, v2, w2, c2,…)Donde uj, vj, y wj son las coordenadas x, y, y z, respectivamente, de un punto.Son escalares, vectores de la misma longitud, matrices del mismo orden, o expresiones que, cuando se evalúan, resultan en una de esas cantidades. Para dibujar un conjunto de n líneas sin conectar cuyos puntos finales son(x1j,y1j,z1j) y (x2j,y2j,z2j), j = 1, 2, …, n• Así, plot3 esy = y y … y j = ,x1 = […]; x2 = […];y1 = […]; y2 = […];z1 = […]; z2 = […];plot3([x1; x2], [y1; y2], [z1; z2])donde [x1; x2], [y1; y2], y [z1; z2] son matrices de(2×n)

Page 12: Matlab graficas

Líneas en 3DTodos los procedimientos de anotación descritas para los gráficos 2D son aplicables a las funciones de generación de curvas y superficies 3D, excepto que los argumentos de text se usatext(x, y, z, s)donde s es un string yzlabelse usa para etiquetar el eje z

Page 13: Matlab graficas

ejemplofunction BoxPlot3(x0, y0, z0, Lx, Ly, Lz)x = [x0, x0, x0, x0, x0+Lx, x0+Lx, x0+Lx, x0+Lx]; %(1×8)y = [y0, y0, y0+Ly, y0+Ly, y0, y0, y0+Ly, y0+Ly]; %(1×8)z = [z0, z0+Lz, z0+Lz, z0, z0, z0+Lz, z0+Lz, z0]; %(1×8)index = zeros(6,5);index(1,:) = [1 2 3 4 1];index(2,:) = [5 6 7 8 5];index(3,:) = [1 2 6 5 1];index(4,:) = [4 3 7 8 4];index(5,:) = [2 6 7 3 2];index(6,:) = [1 5 8 4 1];for k = 1:6plot3(x(index(k,:)), y(index(k,:)), z(index(k,:)))

Page 14: Matlab graficas

Ejemplo: Onda senoidal sobre unasuperficie de un cilindroLas coordenadas de una onda

senoidal sobre la superficie de un cilindro se obtiene con

x = b cos(t) si a=10.0y = b sin(t) b=1.0z = ccos(at) c=0.30<=t<=2pi, el scrip est = linspace(0, 2*pi, 200);a = 10; b = 1.0; c = 0.3;x = b*cos(t);y = b*sin(t);z = c*cos(a*t);plot3(x, y, z, 'k')axis equal

Page 15: Matlab graficas

superficiesMatlab contiene un conjunto de funciones gráficas 3D para crear superficies, contornos, y variaciones, así como especializaciones de esas formas básicas • Una superficie se define por la expresión z = f (x, y)donde x e y son las coordenadas en el plano-xy y zes la altura resultante.Las funciones básicas de graficación de superficies sonsurf(x, y, z) y mesh(x, y, z) donde x, y, z son las coordenadas de los puntos en la superficie.surf – dibuja una superficie compuesta de parches de colores que dependen de la magnitud zmesh – dibuja parches de superficies blancas que sedefinen por su contorno.

Page 16: Matlab graficas

Ejemplos de superficiesSe requiere dibujar una

superficie definida por definida en el rango −3 < x < 3 y −3 < y < 13 Se genera la función SurfExample para calcular las

z(x, y) = x4 + 3x2 + y2 - 2x - 2 y - 2x2 y + 6

coordenadas x, y ,z function [x, y, z] = SurfExamplex1 = linspace(-3, 3, 15); %

(1×15)y1 = linspace(-3, 13, 17); %

(1×17) [x, y] = meshgrid(x1, y1); %

(17×15) z = x.^4+3*x.^2−2*x+6-2*y.*x.^2+y.^2-2*y; % (17×15)

Page 17: Matlab graficas

Gráficos de contornosLas superficies también se

pueden transformar en gráficos de contornos, que son gráficos de curvas formadas por la intersección de la superficie y un plano paralelo al plano xy en valores específicos de z

Las funciones surfc(x, y, z) y meshc(x, y, z) crean superficies con contornos proyectados debajo de la superficie. x, y, z son los valores de las coordenadas de puntos que definen la superficie

Se pueden crear contornos sin visualizar la superficie, con etiquetas o sin etiquetas

La función contour(x, y, z, v) crea un gráfico de contorno donde x, y, z son las coordenadas de los puntos que definen la superficie v, si es un escalar, es el número de niveles de contornos a visualizar y, si es un vector de valores, los contornos de la superficie en los valores de z. El uso de v es opcional.

Page 18: Matlab graficas

Gráficos de contornosSi se quiere etiquetar el contorno se usan las funciones [C, h] = contour(x, y, z, v) clabel(C, h, v)

Page 19: Matlab graficas

Gráficos de contornos 3DPara obtener los contornos

de superficies en 3D, se usa contour3(x, y, z, v) donde x, y, z son las coordenadas de los puntos de la superficie v, si es un escalar, es el número de niveles de contornos a visualizar y, si es un vector de valores, los contornos de la superficie en los valores de z. El uso de v es opcional

Para etiquetar los contornos se usa [C, h] = contour3(x, y, z, v) clabel(C, h, v)

Page 20: Matlab graficas

Ejemplo: mejora de gráficos 2D con objetos 3DPara una esfera de radio a y un elipsoide con su eje mayor en la dirección x igual a 2a, eje menor en la dirección y igual a 2b, y un eje menor en la direcciónz igual a 2c, la proporción del volumen de un elipsoide con relación al volumen de una esfera es Se crea el siguiente programa para mejorar la comprensión de un gráfico de V como función de b/apara varios valores de c/a

Page 21: Matlab graficas

mejora de gráficos 2D conobjetos 3D (código) b = [0.5, 1]; c = b;for k = 1:2plot(b, b*c(k), 'k-')text(0.75, (b(1)*c(k)+b(2)*c(k))/2-0.02,

['c/a = 'num2str(c(k))])hold onendxlabel('b/a') ylabel('V')for k = 1:4Kswitch case 1axes('position', [0.12, 0.2, 0.2, 0.2])[xs, ys, zs] = ellipsoid(0, 0, 0, 1, b(1),

c(1), 20);mesh(xs, ys, zs)text(0, 0, 1, ['b/a = ' num2str(b(1)) ' c/a

= ' num2str(c(1))])case 2axes ('position', [0.1, 0.5, 0.2, 0.2])[xs, ys, zs] = ellipsoid(0, 0, 0, 1, b(1),

c(2), 20);mesh (xs, ys, zs)text (0, 0, 1.5, ['b/a = ' num2str(b(1)) '

c/a = ' num2str(c(2))])

case 3axes ('position', [0.7, 0.65, 0.2, 0.2])[xs, ys, zs] = ellipsoid(0, 0, 0, 1, b(2),

c(2), 20);mesh (xs, ys, zs)text (-1.5, 0, 2, ['b/a = '

num2str(b(2)) ' c/a = ' num2str(c(2))])

case 4axes ('position', [0.7, 0.38, 0.2, 0.2])[xs, ys, zs] = ellipsoid(0, 0, 0, 1, b(2),

c(1), 20);mesh (xs, ys, zs)text (-1.5, 0, 1.5, ['b/a = '

num2str(b(2)) ' c/a = ' num2str(c(1))])

endcolormap([0 0 0])axis equal offend

Page 22: Matlab graficas

mejora de gráficos 2D conobjetos 3D

Page 23: Matlab graficas

Esperamos que sea de su agrado GRACIAS POR

VER ESTE TRABAJO