MATLAB - Matrix Laboratory
Adaptado de Profa. Carla Salso Freitas
e profa. Luciana Nedel
Por Profa. Patrícia Jaques
Gráficos planos 2D
• O comando plot cria gráficos de x-y no plano;
• Se x e y são vetores de mesmo tamanho, o comando
plot(x,y) abre uma janela gráfica e desenha um gráfico
x-y dos elementos de x versus os elementos de y.
• Exemplo:
– x=[-2 -1 0 1 2];
– y=x.^2;
– plot(x,y)
MATLAB - INF01040 - Profa. Patrícia Jaques
2
Gráficos planos 2D
• Se "x" é um vetor, "plot(x)" produz um gráfico linear
dos elementos de "x" versus o índice dos elementos
de "x". Por exemplo, para plotar o vetor "x":
x = [0.0 0.48 0.84 1.0 0.91 0.6 0.14];
plot(x)
MATLAB - INF01040 - Profa. Patrícia Jaques
3
Gráficos planos 2D
• O comando grid coloca
uma grade de linhas sobre
o gráfico atual.
–
–
–
–
x = -1.5:0.01:1.5;
y= exp(-x.^2);
plot(x,y)
grid
MATLAB - INF01040 - Profa. Patrícia Jaques
4
+ gráficos
• Gráficos podem ter títulos, eixos rotulados e textos.
Para isso usa-se os seguintes comandos que tem
strings como argumentos:
–
–
–
–
–
title título do gráfico
xlabel rótulo do eixo x
ylabel rótulo do eixo y
gtext texto posicionado interativamente (mouse ou setas)
grid linhas de grade
» title 'Título'
» xlabel('x')
» ylabel ('y')
MATLAB - INF01040 - Profa. Patrícia Jaques
5
+ gráficos
Exemplo:
x = 0:pi/100:2*pi;
y = sin(x);
plot(x,y);
%o caracter \pi cria o símbolo 
xlabel('x = 0:2\pi');
ylabel('Seno de x');
title('Função Seno');
gtext ('y = sin(x)');
MATLAB - INF01040 - Profa. Patrícia Jaques
6
Gráficos planos 2D múltiplos
• Fazer gráficos múltiplos em uma única janela.
• Exemplo 1:
–
–
–
–
–
x=0:0.01:2*pi;
y1=sin(x);
y2=sin(2*x);
y3=sin(4*x);
plot(x,y1,x,y2,x,y3)
MATLAB - INF01040 - Profa. Patrícia Jaques
7
+ gráficos
• É possível alterar os caracteres de tipo de linha e de
ponto usados como padrão.
• Exemplo:
–
–
–
–
x=0:0.01:2*pi;
y1=sin(x);
y2=sin(2*x);
y3=sin(4*x);
• xlabel('x'), plot(x,y1,'--',x,y2,'*',x,y3,'+')
Linha:
tracejado
Marcador: *
Marcador: +
MATLAB - INF01040 - Profa. Patrícia Jaques
8
+ gráficos
•
• Tipos de linha:
–
–
–
–
Tipos de Marcadores:
–
–
–
–
–
–
–
–
–
sólido (-),
tracejado (--),
pontilhado (:),
traço e ponto (-.)
•
ponto (.),
sinal de adição (+),
asterisco (*),
círculo (o),
letra x (x)
Quadrado (s)
Triangulo (v)
Losango (d)
Hexágono (h)
Cores:
–
–
–
–
–
–
–
Amarelo (y)
Magenta (m)
Verde (g)
Azul (b)
Preto (k)
Vermelho (r)
Ciano (c)
MATLAB - INF01040 - Profa. Patrícia Jaques
9
+ gráficos
•
Exemplo:
x1 = 0:pi/100:2*pi;
x2 = 0:pi/10:2*pi;
plot(x1,sin(x1),'r:',x2,sin(x2), 'b+')
Vermelho
pontilhado
Azul com
sinal de +
MATLAB - INF01040 - Profa. Patrícia Jaques
10
Gráficos planos 2D
• O comando subplot pode ser usado para particionar
a tela e permite a apresentação simultânea de vários
gráficos não superpostos.
• Exemplo:
– ...
MATLAB - INF01040 - Profa. Patrícia Jaques
11
Gráficos planos 2D
–
–
–
–
–
–
–
–
–
–
x=0:0.01:2*pi;
y1=sin(x);
y2=sin(2*x);
y3=sin(3*x);
y4=sin(4*x)+cos(x);
y5=cos(2*x)+sin(3*x);
subplot(2,2,1), plot(y1)
subplot(2,2,2), plot(y2)
subplot(2,2,3), plot(y3)
subplot(2,2,4), plot(y4)
MATLAB - INF01040 - Profa. Patrícia Jaques
12
Gráficos planos 2D
–
–
–
–
–
–
–
–
–
–
–
x=0:0.01:2*pi;
y1=sin(x);
y2=sin(2*x);
y3=sin(3*x);
y4=sin(4*x)+cos(x);
y5=cos(2*x)+sin(3*x);
subplot(2,3,1), plot(y1)
subplot(2,3,2), plot(y2)
subplot(2,3,3), plot(y3)
subplot(2,3,4), plot(y4)
subplot(2,3,5), plot(y5)
MATLAB - INF01040 - Profa. Patrícia Jaques
13
Estilos de linhas
x = 0:0.05:1;
subplot(2,2,1),plot(x,x.^2,'-')
subplot(2,2,2),plot(x,x.^2,':')
subplot(2,2,3),plot(x,x.^2,'-.')
subplot(2,2,4),plot(x,x.^2,'--')
Linha
posiçã
o
coluna
MATLAB - INF01040 - Profa. Patrícia Jaques
14
Estilos de símbolos
x = 0:0.1:1;
subplot(4,3,1),plot(x,x.^2,'.')
subplot(4,3,2),plot(x,x.^2,'o')
subplot(4,3,3),plot(x,x.^2,'x')
subplot(4,3,4),plot(x,x.^2,'+')
subplot(4,3,5),plot(x,x.^2,'*')
subplot(4,3,6),plot(x,x.^2,'s')
subplot(4,3,7),plot(x,x.^2,'d')
subplot(4,3,8),plot(x,x.^2,'v')
subplot(4,3,9),plot(x,x.^2,'^')
subplot(4,3,10),plot(x,x.^2,'<')
subplot(4,3,11),plot(x,x.^2,'p')
subplot(4,3,12),plot(x,x.^2,'h')
MATLAB - INF01040 - Profa. Patrícia Jaques
15
Gráficos – outros comandos para plotar
• Comandos de plotar
x=0:10;
y=x.^2;
– plot(x, y) – gera gráficos lineares
– semilogx(x, y) – gráfico com escala linear para y e escala
logarítmica para x
• eixo x é log10 e o eixo y é linear
– semilogy(x, y) – a escala logarítmica é para y
• eixo x é linear e o eixo y é log10
– loglog(x, y) – escala logarítmica para ambos (x e y)
• plota usando a escala log10xlog10
– bar(x,y) - mostra um gráfico de barras
MATLAB - INF01040 - Profa. Patrícia Jaques
16
Gráficos em malhas 3D
• É possível desenhar superfícies em malhas 3D com
a função mesh.
• O comando mesh(z) cria um desenho 3D em
perspectiva dos elementos da matriz z.
• A superfície da grade é definida pelas coordenadas z
dos pontos, acima de uma grade retangular no plano
x-y.
MATLAB - INF01040 - Profa. Patrícia Jaques
17
Gráficos em malhas 3D
• Para desenhar o gráfico de uma função z = f(x,y),
utiliza-se o comando "meshgrid“
–dados dois vetores "k" e "w", contendo as coordenadas dos
eixos x-y, a função "meshgrid" retorna duas matrizes "x" e "y"
contendo uma "malha" de coordenadas necessária para a
geração de superfícies
[x,y] = meshgrid(-2:0.2:2,-2:0.2:2);
z= x.*exp(-x.^2-y.^2);
mesh(x,y,z);
xlabel('x');
ylabel('y');
zlabel('z');
title('Gráfico 3D')
Lembrete:
exp(x)=ex
e=2.718281828
2-4=1/24=1/16
MATLAB - INF01040 - Profa. Patrícia Jaques
18
• Pode-se, ainda, utilizar o comando contour que
mostra a projeção da superfície acima do plano xy
com 10 iso-linhas:
[x,y] = meshgrid(-2:0.2:2,-2:0.2:2);
z= x.*exp(-x.^2-y.^2);
contour(z,10);
xlabel('x');
ylabel('y');
zlabel('z');
title('Gráfico 3D')
MATLAB - INF01040 - Profa. Patrícia Jaques
19
• Para preencher a superfície plotada, o MatLab
oferece o comando surfc:
[x,y] = meshgrid(-2:0.2:2,-2:0.2:2);
z= x.*exp(-x.^2-y.^2);
contour(z,10)
surfc(x,y,z)
xlabel('x');
ylabel('y');
zlabel('z');
title('Gráfico 3D')
MATLAB - INF01040 - Profa. Patrícia Jaques
20
Gráficos em malhas 3D
• Exemplo:
–
–
–
–
–
xx=-2:.1:2;
yy=xx;
[x,y]=meshgrid(xx,yy);
z=exp(-x.^2-y.^2);
mesh(z)
• As primeiras linhas podem ser omitidas, se
modificarmos a linha de meshgrid para:
– [x,y]=meshgrid(-2:.1:2, -2:.1:2);
MATLAB - INF01040 - Profa. Patrícia Jaques
21
Trabalho – enviar para [email protected]
•
MATLAB - INF01040 - Profa. Patrícia Jaques
22