notas de aula matlab - gráficos - instituto de matemática …rt/mmfina/notmatgrafc.pdfdepto. c. da...

27
1 Notas de Aula MatLab - Gráficos Routo Terada www.ime.usp.br/~rt Depto. C. da Computação - USP Bibliografia: D. Hanselman et al., MatLab 5 -- Guia do Usuário, Editora Makron 1999 MatLab (Routo) 2 plot() x=0:0.1:2*pi; % define pontos no eixo x y=sin(x); % seno de x plot(x,y) title('Exemplo de grafico com plot(): seno(x)') % define título

Upload: vohuong

Post on 09-May-2018

217 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Notas de Aula MatLab - Gráficos - Instituto de Matemática …rt/mmfina/NotMatGrafC.pdfDepto. C. da Computação - USP Bibliografia: D. Hanselman et al., MatLab 5 -- Guia do Usuário,

1

Notas de AulaMatLab - Gráficos

Routo Teradawww.ime.usp.br/~rt

Depto. C. da Computação - USP

Bibliografia:D. Hanselman et al., MatLab 5 -- Guia do Usuário,

Editora Makron 1999

MatLab (Routo) 2

plot() x=0:0.1:2*pi; % define pontos no eixo xy=sin(x); % seno de xplot(x,y)title('Exemplo de grafico com plot(): seno(x)') % define título

Page 2: Notas de Aula MatLab - Gráficos - Instituto de Matemática …rt/mmfina/NotMatGrafC.pdfDepto. C. da Computação - USP Bibliografia: D. Hanselman et al., MatLab 5 -- Guia do Usuário,

2

MatLab (Routo) 3

plot() x=0:0.1:2*pi; % define pontos no eixo xy=sin(x); % seno de xz=cos(x) % cosseno de xplot(x,y,x,z) % dois gráficostitle('Exemplo de 2 graficos: seno(x) e cosseno(x)') % define título

MatLab (Routo) 4

plot()

x=0:0.1:2*pi; % define pontos no eixo xy=sin(x); % seno de xz=cos(x); % cosseno de xMatr=[y;z]; % definir uma matriz com seno e cossenoplot(x,Matr) % // gráfico de Matr versus xtitle('Grafico de y e z de Matr versus x: seno(x) e cosseno(x)')

% define título

Page 3: Notas de Aula MatLab - Gráficos - Instituto de Matemática …rt/mmfina/NotMatGrafC.pdfDepto. C. da Computação - USP Bibliografia: D. Hanselman et al., MatLab 5 -- Guia do Usuário,

3

MatLab (Routo) 5

plot()x=0:0.1:2*pi; % define pontos no eixo xy=sin(x); % seno de xz=cos(x); % cosseno de xMatr=[y;z] % definir uma matriz com seno e cossenoplot(Matr,x) % // matriz como 1o. argumentotitle('Grafico com 90 graus de giro: seno(x) e cosseno(x)')

% define título

MatLab (Routo) 6

plot()

brancow

pretok

amareloy

magentam

cianoc

vermelhor

verdeg

azulb

corsímbolo

Triâng p/ dir.>

Triâng p/ esq.<

hexagramah

pentagramap

triâng p/ cima^

triâng p/ baixov

losangod

quadrados

xisx

círculoo

ponto.

marcasímbolo

tracejada--

Traço e pto.

-.

pontilhada:

contínua-

Tipo de linha

símbolo

Page 4: Notas de Aula MatLab - Gráficos - Instituto de Matemática …rt/mmfina/NotMatGrafC.pdfDepto. C. da Computação - USP Bibliografia: D. Hanselman et al., MatLab 5 -- Guia do Usuário,

4

MatLab (Routo) 7

plot()

x=0:0.1:2*pi; % define pontos no eixo xy=sin(x); % seno de xz=cos(x); % cosseno de xplot(x,y,'rd') % r de red, e d de losangotitle('Grafico vermelho com marcador losango: seno(x)')

% define título

MatLab (Routo) 8

plot()x=0:0.1:2*pi; % define pontos no eixo xy=sin(x); % seno de xz=cos(x); % cosseno de xplot(x,y,'b:s')title('Grafico azul com marcador square, linha pontilhada: seno(x)')

Page 5: Notas de Aula MatLab - Gráficos - Instituto de Matemática …rt/mmfina/NotMatGrafC.pdfDepto. C. da Computação - USP Bibliografia: D. Hanselman et al., MatLab 5 -- Guia do Usuário,

5

MatLab (Routo) 9

plot()

x=0:0.1:2*pi; % define pontos no eixo xy=sin(x); % seno de xz=cos(x); % cosseno de xplot(x,y,'b:s',x,z,'rv--')title('Graficos de seno (blue) e cosseno (red)')

MatLab (Routo) 10

plot()

x=0:0.1:2*pi; % define pontos no eixo xy=sin(x); z=cos(x); plot(x,y,'b:s',x,z,'rv--')title('Graficos com legenda') xlabel('Eixo x') % eixo horizontalylabel('Seno e Cosseno') % eixo verticallegend('seno','cosseno') % inserir legenda, na ordem% que pode ser deslocada arrastando-a c/ mouse

Page 6: Notas de Aula MatLab - Gráficos - Instituto de Matemática …rt/mmfina/NotMatGrafC.pdfDepto. C. da Computação - USP Bibliografia: D. Hanselman et al., MatLab 5 -- Guia do Usuário,

6

MatLab (Routo) 11

plot()

x=0:0.1:2*pi; % define pontos no eixo xy=sin(x); z=cos(x); plot(x,y,'b:s',x,z,'rv--')title('Graficos com legenda') xlabel('Eixo x') % eixo horizontalylabel('Seno e Cosseno') % eixo verticallegend('seno','cosseno') % inserir legenda, na ordemgrid on % para mostrar reticulado; grid off p/ apagar text(0,-0.7,'Colocar texto em x=0 e y=-0.7') % p/ incluir texto

MatLab (Routo) 12

subplot() subplot(m,n,prox) divide a janela de gráficos em m linhase n colunas, sendo prox a próxima célula a receber o gráfico

x=0:0.1:3*pi; % define pontos no eixo xy=sin(x); % seno de xz=cos(x); % cosseno de xw=3*cos(x);%%%%%%%%%%%subplot(2,2,1)plot(x,y,'bo')title('Celula 1: seno')%%%%%%%%%%%subplot(2,2,4)plot(x,z,'rv--')title('Celula 4: cosseno')%%%%%%%%%%%subplot(2,2,2)plot(x,y,x,w)title('Celula 2: sen e 3*cos c/ mesma escala')%%%%%%%%%%subplot(2,2,3)% plotyy p/ ter escala distinta nos eixos verticais% escala de y no eixo vert esquerdo, % de w no vert direitoplotyy(x,y,x,w)title('Escala esq de seno, dir de 3*cosseno') plotyy()

Page 7: Notas de Aula MatLab - Gráficos - Instituto de Matemática …rt/mmfina/NotMatGrafC.pdfDepto. C. da Computação - USP Bibliografia: D. Hanselman et al., MatLab 5 -- Guia do Usuário,

7

MatLab (Routo) 13

y=sin(x); % seno de xz=cos(x); % cosseno de x%%%%%%%%%%%%%%%%%%%%figure(1) % próx gráfico na janela 1plot(x,y,'bo')title('Figura 1: seno')%%%%%%%%%%%%%%%%%%%%figure(2) % próx gráfico na janela 2plot(x,z,'rv--')title('Figura 2: cosseno')

figure()

MatLab (Routo) 14

A=[4.3 3.2 2.25 1];pie(A,A==max(A)); % destaca a fatia maiortitle('Grafico Pie com max em destaque')legend('SP','MG','RN','MS')

pie()

Page 8: Notas de Aula MatLab - Gráficos - Instituto de Matemática …rt/mmfina/NotMatGrafC.pdfDepto. C. da Computação - USP Bibliografia: D. Hanselman et al., MatLab 5 -- Guia do Usuário,

8

MatLab (Routo) 15

A= [4.3 3.2 2.25 1];pie(A,[0 1 1 0]) % destaca as fatias com 1 na posicao correspondentetitle('Grafico Pie')legend('SP','MG','RN','MS')

pie()

MatLab (Routo) 16

A= [1.1 2.2 3.3 4.4];pie3(A)title('Grafico Pie 3D')

pie3()p/ 3D

Page 9: Notas de Aula MatLab - Gráficos - Instituto de Matemática …rt/mmfina/NotMatGrafC.pdfDepto. C. da Computação - USP Bibliografia: D. Hanselman et al., MatLab 5 -- Guia do Usuário,

9

MatLab (Routo) 17

% gera 50 valores, 1 coluna, distribuicao normal% media zero, variancia 1norma=randn(50,1)stem(norma,'o') % mostra 50 hastes

stem()

MatLab (Routo) 18

x=-1.9:0.2:1.9; % cria xy=exp(-x.*x); % cria ybar(x,y)title('Grafico de barras')

bar()

Page 10: Notas de Aula MatLab - Gráficos - Instituto de Matemática …rt/mmfina/NotMatGrafC.pdfDepto. C. da Computação - USP Bibliografia: D. Hanselman et al., MatLab 5 -- Guia do Usuário,

10

MatLab (Routo) 19

x=-1.9:0.2:1.9; % cria xy=exp(-x.*x); % cria ybar3(x,y,'y')title('Grafico de barras 3D')

MatLab (Routo) 20

x=-1.9:0.2:1.9; % cria xy=exp(-x.*x); % cria ybarh(x,y)title('Grafico de barras horizontal')

barh()

Page 11: Notas de Aula MatLab - Gráficos - Instituto de Matemática …rt/mmfina/NotMatGrafC.pdfDepto. C. da Computação - USP Bibliografia: D. Hanselman et al., MatLab 5 -- Guia do Usuário,

11

MatLab (Routo) 21

x=-1.9:0.2:1.9; % cria xy=exp(-x.*x); % cria ybar3h(x,y,'r')title('Grafico de barras horiz. 3D')

MatLab (Routo) 22

x=-1.9:0.2:1.9; % cria xy=exp(-x.*x); % cria ystairs(x,y)title('Grafico escada')

stairs()

Page 12: Notas de Aula MatLab - Gráficos - Instituto de Matemática …rt/mmfina/NotMatGrafC.pdfDepto. C. da Computação - USP Bibliografia: D. Hanselman et al., MatLab 5 -- Guia do Usuário,

12

MatLab (Routo) 23

x=-1.9:0.2:1.9; % cria xy=exp(-x.*x); % cria ye=rand(size(x))/10 % pseudo aleatórioerrorbar(x,y,e) % barra com y+e, y-etitle('Grafico c/ barras de erro')

errorbar()

MatLab (Routo) 24

funtool p/ experiência c/ 2 funções (comando no worspace)

Page 13: Notas de Aula MatLab - Gráficos - Instituto de Matemática …rt/mmfina/NotMatGrafC.pdfDepto. C. da Computação - USP Bibliografia: D. Hanselman et al., MatLab 5 -- Guia do Usuário,

13

MatLab (Routo) 25

angulo=0:0.05:2*pi;raio=1+sin(3*angulo).*cos(2.5*angulo);polar(angulo,raio,'r-') % mostra ang e raiotitle('Grafico polar: ang e raio')

MatLab (Routo) 26

real=randn(5);imag=randn(5);compass(real,imag) % p/ numeros complexos% mostra angulo e modulo de real+i*imag% saindo da origem (0,0)title('Grafico bussola: angulo e modulo')

Page 14: Notas de Aula MatLab - Gráficos - Instituto de Matemática …rt/mmfina/NotMatGrafC.pdfDepto. C. da Computação - USP Bibliografia: D. Hanselman et al., MatLab 5 -- Guia do Usuário,

14

MatLab (Routo) 27

real=randn(5);imag=randn(5);feather(real,imag) % p/ numeros complexos% mostra angulo e modulo de real+i*imag% saindo da reta horizontaltitle('Grafico feather: angulo e modulo')

MatLab (Routo) 28

v=randn(1000,1)*pi;rose(v,20) % n=20% mostra angulos no vetor v, atraves de n "fatias"title('Histograma dos angulos')

Page 15: Notas de Aula MatLab - Gráficos - Instituto de Matemática …rt/mmfina/NotMatGrafC.pdfDepto. C. da Computação - USP Bibliografia: D. Hanselman et al., MatLab 5 -- Guia do Usuário,

15

MatLab (Routo) 29

x=-2*pi:0.1:2*pi;y=sin(x).^2./(x+0.001);plot(x,y)title('Grafico x,y')% a seguir coleta n pontos do plano x-y atraves do mouse[xmouse,ymouse]=ginput(3)hold onplot(xmouse,ymouse,'rs') % red squarehold off

MatLab (Routo) 30

xmouse =-3.1521-0.31343.1152

ymouse =-0.0023-0.32510.0117

Ptos. coletados pelo mouse

Page 16: Notas de Aula MatLab - Gráficos - Instituto de Matemática …rt/mmfina/NotMatGrafC.pdfDepto. C. da Computação - USP Bibliografia: D. Hanselman et al., MatLab 5 -- Guia do Usuário,

16

MatLab (Routo) 31

Gráficos 3D

MatLab (Routo) 32

plot3() % plot3, helice (sen(t),cos(t),t)t=0:0.01:6*pi; % intervalo para eixo tplot3(sin(t), cos(t), t) % eixos x,y,z

Page 17: Notas de Aula MatLab - Gráficos - Instituto de Matemática …rt/mmfina/NotMatGrafC.pdfDepto. C. da Computação - USP Bibliografia: D. Hanselman et al., MatLab 5 -- Guia do Usuário,

17

MatLab (Routo) 33

t=0:0.01:6*pi; % intervalo para eixo tplot3(sin(t), cos(t), t) % eixos x,y,ztitle('Grafico com texto')text(0,0,0,'Texto em x,y,z')

plot3()

MatLab (Routo) 34

t=0:0.01:6*pi; %define eixo zplot3(sin(t),cos(t),t) % eixos x, y, zxlabel('Eixo x') ylabel('Eixo y') zlabel('Eixo z')title('Grafico 3D de linha')

plot3()

Page 18: Notas de Aula MatLab - Gráficos - Instituto de Matemática …rt/mmfina/NotMatGrafC.pdfDepto. C. da Computação - USP Bibliografia: D. Hanselman et al., MatLab 5 -- Guia do Usuário,

18

MatLab (Routo) 35

t=0:0.01:6*pi;plot3(sin(t),cos(t),t)xlabel('Eixo x') ylabel('Eixo y') zlabel('Eixo z')title('Grafico 3D de linha c/ pto. de vista [x, y, z]=[1, -1, 0.3]')% a seguir, define ponto de vista 3Dview([1, -1, 0.3]) % note [x, y, z]

% view([-1,-1,1]) e' o default

view() p/ definir ponto de vista 3D

MatLab (Routo) 36

t=0:0.01:6*pi;plot3(sin(t),cos(t),t)xlabel('Eixo x') ylabel('Eixo y') zlabel('Eixo z')title('Grafico 3D de linha c/ pto. de vista [x, y, z]=[-1, -1, 3]')% a seguir, define ponto de vista 3Dview([-1, -1, 3]) % note [x, y, z]

% view([-1,-1,1]) e' o default

view() com [-1,-1,3]

Page 19: Notas de Aula MatLab - Gráficos - Instituto de Matemática …rt/mmfina/NotMatGrafC.pdfDepto. C. da Computação - USP Bibliografia: D. Hanselman et al., MatLab 5 -- Guia do Usuário,

19

MatLab (Routo) 37

% definir uma "grade" de pontos X Y no plano x-y% aplicando meshgrid()[X, Y]= meshgrid(-2*pi:0.5:2*pi, -3*pi:0.5:3*pi); % note o ;% a seguir grafico 3D reticulado% 3o. argumento e' o valor no eixo Zmesh(X,Y,sin(sqrt(X.*X+Y.*Y))) title('Grafico 3D reticulado')colorbar % a cor indica o valor no eixo Z

mesh()c/ 3 argu-mentos

MatLab (Routo) 38

% definir uma "grade" de pontos X Y no plano x-y% aplicando meshgrid()[X, Y]= meshgrid(-2*pi:0.5:2*pi, -3*pi:0.5:3*pi); % note o ;% a seguir grafico 3D com "retalhos"% preenchendo cada reticulado% 3o. argumento e' o valor no eixo Zsurf(X,Y,sin(sqrt(X.*X+Y.*Y))) title('Grafico 3D reticulado c/ preenchimento')colorbar % a cor indica o valor no eixo Z

surf()

Page 20: Notas de Aula MatLab - Gráficos - Instituto de Matemática …rt/mmfina/NotMatGrafC.pdfDepto. C. da Computação - USP Bibliografia: D. Hanselman et al., MatLab 5 -- Guia do Usuário,

20

MatLab (Routo) 39

[x,y]= meshgrid([-2:.2:2]);Z= x.*exp(-x.^2-y.^2);surf(x,y,Z,gradient(Z))colorbar

surf()c/ 4o. argu-mento

O 4o. argumentoindica a cor apli-cada. Gradiente é a in-clinação/derivada.

MatLab (Routo) 40

% a seguir definir um dominio X Y[X, Y]= meshgrid( -2*pi:0.01:2*pi, -3*pi:0.01:3*pi); % note o ;% índice de X no eixo x, índice de Y no eixo ymesh( sin(sqrt(X.*X+Y.*Y)) ) % só 1 argumento, p/ o eixo Z

mesh()c/ 1 argumento

Aviso: geração deste gráfico demora muito!

Page 21: Notas de Aula MatLab - Gráficos - Instituto de Matemática …rt/mmfina/NotMatGrafC.pdfDepto. C. da Computação - USP Bibliografia: D. Hanselman et al., MatLab 5 -- Guia do Usuário,

21

MatLab (Routo) 41

mesh(peaks) % função peaks() pré-definidacolorbar

MatLab (Routo) 42

mesh(peaks) % função peaks() pré-definida[x,y,z]=peaks;contour(x,y,z,20) % 20 curvas de nivelcolorbar

Page 22: Notas de Aula MatLab - Gráficos - Instituto de Matemática …rt/mmfina/NotMatGrafC.pdfDepto. C. da Computação - USP Bibliografia: D. Hanselman et al., MatLab 5 -- Guia do Usuário,

22

MatLab (Routo) 43

mesh(peaks) % função peaks() pré-definida[x,y,z]=peaks;contour3(x,y,z,20) % 20 curvas de nivel 3Dcolorbar

MatLab (Routo) 44

mesh(peaks) % função peaks() pré-definida[x,y,z]=peaks;pcolor(x,y,z) % cor indica a altura da funçãotitle('Curvas de nivel: cor indica a altura da funcao')colorbar

Page 23: Notas de Aula MatLab - Gráficos - Instituto de Matemática …rt/mmfina/NotMatGrafC.pdfDepto. C. da Computação - USP Bibliografia: D. Hanselman et al., MatLab 5 -- Guia do Usuário,

23

MatLab (Routo) 45

mesh(peaks) % função peaks() pré-definida[x,y,z]=peaks;pcolor(x,y,z) % cor indica a altura da funçãoshading interp % remove o reticulado de linhastitle('Curvas de nivel: cor indica a altura da funcao')colorbar

MatLab (Routo) 46

mesh(peaks) % função peaks() pré-definida[x,y,z]=peaks;pcolor(x,y,z) % cor indica a altura da funçãoshading interp % remove o reticulado de linhashold on% superpor 20 curvas de linha em cor pretacontour(x,y,z,20,'k')title('Curvas de nivel: cor indica a altura da funcao')colorbarhold off

Page 24: Notas de Aula MatLab - Gráficos - Instituto de Matemática …rt/mmfina/NotMatGrafC.pdfDepto. C. da Computação - USP Bibliografia: D. Hanselman et al., MatLab 5 -- Guia do Usuário,

24

MatLab (Routo) 47

N=8[x,y,z]=peaks(N);% N curvas de nivel preenchidas: contourf()curva=contourf(x,y,z,N); % clabel() para mostrar valoresclabel(curva)title('Curvas de nivel preenchidas com valores marcados')colorbar

MatLab (Routo) 48

mesh(peaks) colorbarrotate3d on

rotate3d on p/ ligar a opção de arrastar o gráfico com o mouse e mudar o pto. de vista 3D

Page 25: Notas de Aula MatLab - Gráficos - Instituto de Matemática …rt/mmfina/NotMatGrafC.pdfDepto. C. da Computação - USP Bibliografia: D. Hanselman et al., MatLab 5 -- Guia do Usuário,

25

MatLab (Routo) 49

mesh(peaks(30)+8) % peaks com 30 fatiascolorbarhold onpcolor(peaks(30))hold offtitle('2 graficos: mesh e pcolor')

MatLab (Routo) 50

mesh(peaks(30)+8) % peaks com 30 fatiascolorbarhold onpcolor(peaks(30))hold offtitle('2 graficos: mesh e pcolor')hidden off % p/ mostrar as linhas "escondidas"

Page 26: Notas de Aula MatLab - Gráficos - Instituto de Matemática …rt/mmfina/NotMatGrafC.pdfDepto. C. da Computação - USP Bibliografia: D. Hanselman et al., MatLab 5 -- Guia do Usuário,

26

MatLab (Routo) 51

colormap(hot) % escolhe mapa de coressurfl(peaks) % surfl p/ iluminar com constrateshading interp; % tira reticuladotitle('Surf com iluminacao')colorbar

MatLab (Routo) 52

Magenta +amarelospring

Azul+verdewinter

Verm+amareloautumn

Amarelo+verdesummer

colorcube

Cores da função plot()lines

Ciano e magentacool

prism

Parece hsvjet

Verm+branco+azul+preto alternadosflag

white

rosapink

cobrecopper

Cinza azuladabone

Tons de cinzagray

Preto+vermelho+amarelo+brancohot

Cores saturadashsv

Mapasde

cores

Page 27: Notas de Aula MatLab - Gráficos - Instituto de Matemática …rt/mmfina/NotMatGrafC.pdfDepto. C. da Computação - USP Bibliografia: D. Hanselman et al., MatLab 5 -- Guia do Usuário,

27

MatLab (Routo) 53

x=0:0.1:2*pi;y=abs(sin(x));ribbon(x,y) % y como fitasylabel('Eixo y')title('ribbon')

MatLab (Routo) 54

N=22;meshz(peaks(N));title('meshz p/ grafico "cortina"')