Graficos en Matlab Clase2

Embed Size (px)

Citation preview

  • 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