220 likes | 549 Views
MATLAB - INF01040 - Profa. Patrcia Jaques. 2. Grficos planos 2D. O comando plot cria grficos de x-y no plano; Se x e y so vetores de mesmo tamanho, o comando plot(x,y) abre uma janela grfica e desenha um grfico x-y dos elementos de x versus os elementos de y. Exemplo: x=[-2 -1 0 1 2]; y=x.
E N D
1. MATLAB - Matrix LaboratoryAdaptado de Profa. Carla Salso Freitase profa. Luciana NedelPor Profa. Patrícia Jaques
2. MATLAB - INF01040 - Profa. Patrícia Jaques 2 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)
3. MATLAB - INF01040 - Profa. Patrícia Jaques 3 Gráficos planos 2D Exemplo:
x=0:0.01:10;
y=sin(x);
plot(x,y)
4. MATLAB - INF01040 - Profa. Patrícia Jaques 4 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)
5. MATLAB - INF01040 - Profa. Patrícia Jaques 5 Gráficos planos 2D Outro exemplo: Desenhar o gráfico de y=exp(-x.^2) no intervalo –1.5 a 1.5.
x = -1.5:0.01:1.5;
y= exp(-x.^2);
plot(x,y)
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
6. MATLAB - INF01040 - Profa. Patrícia Jaques 6 + 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'
7. MATLAB - INF01040 - Profa. Patrícia Jaques 7 + gráficos
8. MATLAB - INF01040 - Profa. Patrícia Jaques 8 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)
9. MATLAB - INF01040 - Profa. Patrícia Jaques 9 + 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);
plot(x,y1,'--',x,y2,'*',x,y3,'+')
10. MATLAB - INF01040 - Profa. Patrícia Jaques 10 + gráficos Tipos de linha:
sólido (-),
tracejado (--),
pontilhado (:),
traço e ponto (-.) Tipos de Marcadores:
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)
11. MATLAB - INF01040 - Profa. Patrícia Jaques 11 + gráficos
12. MATLAB - INF01040 - Profa. Patrícia Jaques 12 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:
...
13. MATLAB - INF01040 - Profa. Patrícia Jaques 13 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)
14. MATLAB - INF01040 - Profa. Patrícia Jaques 14 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)
15. MATLAB - INF01040 - Profa. Patrícia Jaques 15 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,'--')
16. MATLAB - INF01040 - Profa. Patrícia Jaques 16 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')
17. MATLAB - INF01040 - Profa. Patrícia Jaques 17 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
18. MATLAB - INF01040 - Profa. Patrícia Jaques 18 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.
19. MATLAB - INF01040 - Profa. Patrícia Jaques 19 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')
20. MATLAB - INF01040 - Profa. Patrícia Jaques 20 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')
21. MATLAB - INF01040 - Profa. Patrícia Jaques 21 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')
22. MATLAB - INF01040 - Profa. Patrícia Jaques 22 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);