Você está na página 1de 26

Prof. Ricardo N.

Paiva
Robtica




Aula 02

Matlab: Grficos 2D/3D

1

2
Grficos em duas dimenses
Para obter informaes sobre um tpico especfico, digite help tpico. Por
exemplo,

>> help plotxy

que fornece uma lista de todos os comandos relacionados com grficos
bidimensionais:

Two dimensional graphics.

Elementary X-Y graphs.

plot - Linear plot.
loglog - Log-log scale plot.
semilogx - Semi-log scale plot.
semilogy - Semi-log scale plot.
fill - Draw filled 2-D polygons.


3
Grficos em duas dimenses
Specialized X-Y graphs.
polar - Polar coordinate plot.
bar - Bar graph.
stem - Discrete sequence or & "stemm" plot.
stairs - Stairstep plot.
errorbar - Error bar plot.
hist - Histogram plot.
rose - Angle histogram plot.
compass - Compass plot.
feather - Feather plot.
fplot - Plot function
comet - Comet-like trajectory.

Graph annotation.
title - Graph title.
xlabel - X-axis label.
ylabel - Y-axis label.
text - Text annotation.
gtext - Mouse placement of text.
grid - Grid lines.

4
Grficos em duas dimenses
Finalmente, para obter informaes sobre um comando especfico, por exemplo
title, digite:

>> help title

e informaes mais detalhadas sobre este comando sero exibidas:

TITLE Titles for 2-D and 3-D plots.
TITLE (text) adds text at the top of the current axis.

Note que no exemplo mostrado para adicionar o ttulo em um grfico, TITLE
(TEXT) est escrito em letras maisculas somente para destacar. Deve-se lembrar
que todos os comandos do MATLAB devem ser escritas em letras minsculas,
portanto, para adicionar o texto Ttulo do Grfico em um grfico, digite:

>> title (Ttulo do Grfico)


5
Funes pr-definidas
O grfico da funo :
>> x = -l:0.0l:2;
>> plot(x,humps(x)), grid
function y =humps(x)
y =l ./ ((x-.3).^2 +.0l) +1./((x-.9).^2 +.04) - 6;
-1 -0.5 0 0.5 1 1.5 2
-20
0
20
40
60
80
100

6
Determinando o mnimo num intervalo
A localizao do mnimo da funo humps(x) no intervalo de 0.5 a 1 obtido da
seguinte maneira:
>> help fminbnd % para obter informaes sobre o comando
>> xmin = fminbnd(@humps,0.5,1)
xmin =

0.6370
>> ymin = humps(xmin)
ymin =

11.2528

E o grfico deste intervalo com o
ponto de mnimo pode ser construdo:
>> x = 0.5:0.01:1;
>> plot(x, humps(x), xmin, ymin, '*')


0.5 0.55 0.6 0.65 0.7 0.75 0.8 0.85 0.9 0.95 1
10
12
14
16
18
20
22

7
Determinando os zeros
A funo humps(x) apresenta dois zeros no intercalo de -1 a 2.
A localizao do primeiro zero prxima do ponto x = 0,
>> xzl = fzero('humps',0)
xzl =
-0.1316

A localizao do segundo zero
prxima do ponto x= 1,
>> xz2 = fzero('humps',1)
xz2 =
1.2995

O grfico da funo com os dois
zeros obtido atravs da expresso:

>> x = -1:0.01:2;
>> plot(x, humps(x), xzl, humps(xzl),'*', xz2, humps(xz2), '+'), grid

-1 -0.5 0 0.5 1 1.5 2
-20
0
20
40
60
80
100

8
Grficos
>> t=0:0.01:10;
>> y=sin(t);
>> plot(t,y)
0 1 2 3 4 5 6 7 8 9 10
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1

9
Grficos
>> z=cos(t);
>> plot(t,z)
0 1 2 3 4 5 6 7 8 9 10
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1

10
Grficos
>> subplot(1,2,1)
>> plot(t,y)
0 5 10
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1

11
Grficos
>> subplot(1,2,2)
>> plot(t,z)
0 5 10
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
0 5 10
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1

12
Grficos
>> t=0:0.25:10;
>> y=sin(t);
>> plot(t,y,'r+')
>> xlabel('tempo')
>> ylabel('seno')
>> title('Seno vs. Tempo')
>> Axis([0 10 -2 2])
0 5 10
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
0 5 10
-2
-1.5
-1
-0.5
0
0.5
1
1.5
2
tempo
s
e
n
o
Seno vs. Tempo

13
Grficos
>> clear all
>> t=0:0.25:10;
>> y=sin(t);
>> plot(t,y,'r+')
>> xlabel('tempo')
>> ylabel('seno')
>> title('Seno vs. Tempo')
>> Axis([0 10 -2 2])
0 1 2 3 4 5 6 7 8 9 10
-2
-1.5
-1
-0.5
0
0.5
1
1.5
2
tempo
s
e
n
o
Seno vs. Tempo
>> t=0:0.01:10;
>> y=sin(t);
>> z=cos(t);
>> plot(t,y,'g-',t,z,'r-')
>> legend('seno','cosseno')
Ou...
>> t=0:0.01:10;
>> y=sin(t);
>> z=cos(t);
>> plot(t,y,'g-)
>> hold on
>> plot(t,z,'r-')
>> legend('seno','cosseno')

14
Grficos: mais de uma curva
0 1 2 3 4 5 6 7 8 9 10
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1


seno
cosseno
>> x = [1 3 0.5 2.5 2];
>> explode = [0 1 0 0 0];
>> pie(x,explode)
>> colormap jet
>> legend('EMB','IND','ACO','DIV','POT')

15
Grfico: tortas
11%
33%
6%
28%
22%


EMB
IND
ACO
DIV
POT
>> x = [1 3 0.5 2.5 2];
>> explode = [0 1 0 0 0];
>> pie3(x,explode)
>> colormap jet
>> legend('EMB','IND','ACO','DIV','POT')

16

28%
6%
22%
33%
11%

EMB
IND
ACO
DIV
POT
Grfico: tortas
>> x = -2.9:0.2:2.9;
>> bar(x,exp(-x.*x))
>> colormap hsv

17
-3 -2 -1 0 1 2 3
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Grfico: barras

18
Grficos em trs dimenses

19
Grficos em trs dimenses
Estes so alguns comandos para plotar grficos tridimensionais e contornos.
Plot3 Plotar em espao 3D.
fill3 Desenhar polgono 3D.
comet3 Plotar em 3D com trajetria de cometa.
contour Plotar contorno 2D.
contour3 Plotar contorno 3D.
clabel Plotar contorno com valores.
quiver Plotar gradiente.
mesh Plotar malha 3D.
meshc Combinao mesh/contour.
surf Plotar superfcie 3D.
surfc Combinao surf/contour.
surfil Plotar superfcie 3D com iluminao.
slice Plot visualizao volumtrica.
cylinder Gerar cilindro.
sphere Gerar esfera.

20
Grficos em trs dimenses
O comando mesh(X,Y,Z) cria uma perspectiva tridimensional plotando os
elementos do vetor Z em relao ao plano definindo pelos vetores X e Y. Por
exemplo,
>> [X,Y] = meshgrid(-2:0.2:2, -2:0.2:2);
>> Z = X.* exp(-X.^2 - Y.^2);
>> mesh(X,Y,Z)
-2
-1
0
1
2
-2
-1
0
1
2
-0.5
0
0.5

21
Cortes em iso-linhas
O comando contour(Z,10) mostra a projeo da superfcie acima no plano xy com
10 iso-linhas:

>> contour(Z,10)
2 4 6 8 10 12 14 16 18 20
2
4
6
8
10
12
14
16
18
20
>> %Malha triangular da base
>> %malha da base
>> xx=0:0.01:1;
>> yy=0:0.01:1;
>> [X,Y]=meshgrid(xx,yy);
>> Z=1-X-Y;

>> mesh(X,Y,Z)
Composio
(3 componentes)

22
Grficos - Superfcie
0
0.2
0.4
0.6
0.8
1
0
0.5
1
-1
-0.5
0
0.5
1
%Malha triangular da base
%malha da base
>> xx=0:0.01:1;
>> yy=0:0.01:1;
>> [X,Y]=meshgrid(xx,yy);
>> Z=1-X-Y;

>> %aplica a restrio para usar s a base do triangulo
>> %onde existe consistncia fsica (o que no tem vira
>> "Not a Number")
>> iz=find(Z<0);
>> Z(iz)=nan;

>> mesh(X,Y,Z)
Alguns Z so
negativos! Vamos
elimin-los!

23
Grficos - Superfcie
0
0.5
1 0
0.2
0.4
0.6
0.8
1
0
0.2
0.4
0.6
0.8
1
Peaks uma funo de duas variveis obtida a partir da translao de
duas distribuies Gaussianas

>> [X,Y,Z] = peaks(30);
>> surfc(X,Y,Z)
>> colormap hsv
>> axis([-3 3 -3 3 -10 7])

24
Grficos Funo Peaks
-3
-2
-1
0
1
2
3
-3
-2
-1
0
1
2
3
-10
-5
0
5
Colorir uma esfera seguindo o padro de +1 e -1 segundo uma matriz
Hadamard

>> k = 5;
>> n = 2^k-1;
>>[x,y,z] = sphere(n);
>> c = hadamard(2^k);
>> surf(x,y,z,c);
>> colormap([1 1 0; 0 1 1])
>> axis equal

25
Grficos Matriz Hadamard
-0.5
0
0.5
-0.5
0
0.5
-1
-0.5
0
0.5
1
Use close all para fechar todas as figuras
Use clf para apagar a figura atual

26
Dicas

Você também pode gostar