0% acharam este documento útil (0 voto)
6 visualizações96 páginas

Gráficos Avançados em MATLAB: Aula 05

O documento aborda a criação e manipulação de gráficos no MATLAB, incluindo gráficos 2D, gráficos com escala logarítmica, gráficos de dispersão e gráficos 3D. Também são discutidos histogramas, margens de erro e a utilização de funções como 'meshgrid' e 'surf' para criar superfícies. Além disso, apresenta interações e ajustes de propriedades de gráficos através de programação.

Enviado por

Genesis Evnglst
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
6 visualizações96 páginas

Gráficos Avançados em MATLAB: Aula 05

O documento aborda a criação e manipulação de gráficos no MATLAB, incluindo gráficos 2D, gráficos com escala logarítmica, gráficos de dispersão e gráficos 3D. Também são discutidos histogramas, margens de erro e a utilização de funções como 'meshgrid' e 'surf' para criar superfícies. Além disso, apresenta interações e ajustes de propriedades de gráficos através de programação.

Enviado por

Genesis Evnglst
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

MATLAB

Aula 05
Gráficos II

Jan K. S. – janks@[Link]
ENG 1118 – Tópicos Especiais
90 1
120 2 60
100
2500
0.9
90 1.5

150 30 0.8
80 1 2000

70 0.7
0.5
1500
60 0.6
180 0 0
50 0.5
1000

40
0.4

30
210 330 500
0.3

20
0.2
10 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9
240 300
0 10 20 30 40 50 60 70
270

35 2

30 1.5

1
25
0.5
20
0
15
-0.5
10
-1

5 -1.5

0 -2
1 3

0.5 1 2.5 2

0 0.5 2 1.5
0 1
-0.5 1.5
-0.5 0.5
-1 -1 1 0

Exemplos de Mais Gráficos


Mais Gráficos 2D
Gráficos com Escala Logaritmica
>> semanas = 1:9;
>> casos = [2 20 227 2036 9172 27980 63927
101739 132547];
>> plot(semanas, casos);
>> grid on;

>> figure;
>> semilogy(semanas, casos);
>> grid on;

Motivação para Uso da Escala Logarítmica num Eixo


Ruim de ler os valores

?
Tipo de Escala Comando

Escala Log no Eixo X semilogx

Escala Log no Eixo Y semilogy

Escala Log nos Dois Eixos loglog


Earthworks Cardioid Microphone

Antenna Radiation Pattern

Coordenadas Polares
>> theta = linspace(0, 6 * pi, 1000);
>> rho = theta / 10;
>> polarplot(theta, rho);

Gráfico em Coordenadas Polares


Gráficos com Margens de Erro
>> x = 0 : 10 : 70;
>> y = [20 30 45 40 60 65 80 70];
>> margens = [8 10 3 2 14 7 11 6];
>> errorbar(x, y, margens);

Gráfico com Margens de Erro


>> x = 0 : 10 : 70;
>> y = [20 30 45 40 60 65 80 70];
>> margens = [8 10 3 2 14 7 11 6];
>> errorbar(x, y, margens, "r*");

similar às opções da função plot

Gráfico com Margens de Erro


>> x = 0 : 10 : 70;
>> y = [20 30 45 40 60 65 80 70];
>> yNeg = [8 10 3 2 14 7 11 6];
>> yPos = [3 0 12 2 7 9 4 1];
>> xNeg = [1 3 5 3 5 3 6 4];
>> xPos = [2 5 3 5 2 5 2 2];
>> errorbar(x, y, yNeg, yPos, xNeg, xPos);

Gráfico com Margens de Erro


Histogramas
>> avaliacoes = [4 2 5 1 3 2 4 3 1 3 3 4];
>> histogram(avaliacoes);
>> xticks(1:5);

Histograma
número 3 apareceu
4 vezes no vetor
vetor de 1000 números aleatórios
>> x = randn(1, 1000); em uma distribuição gaussiana
>> histogram(x);

Histograma de Números Aleatórios


>> x = randn(1, 1000);
>> limites = [-3 -2 -1 0 1 2 3];
>> histogram(x, limites);

Histograma com Limites Específicas


Gráficos de Dispersão
>> x = [0.3 1 2 2.8];
>> y = [0.3 2.7 1 2];
>> areas = [400 1000 100 5000];
>> scatter(x, y, areas);

Gráfico de Dispersão
matriz 1x20 (vetor de 20 elementos)
>> x = rand(1, 20); de números reais aleatórios entre 0 e 1
>> y = rand(1, 20);
>> areas = rand(1, 20) * 5000;
>> scatter(x, y, areas);

Gráfico de Dispersão com Valores Aleatórios


>> x = rand(1, 10);
>> y = rand(1, 10);
>> areas = rand(1, 10) * 5000;
>> valores = rand(1, 10) * 5000;
>> scatter(x, y, areas, valores, "filled");
>> colorbar; adiciona barra de com legenda de cores

Gráfico de Dispersão com Cores


Gráficos 3D
z

Linhas em 3D
(1,3)

x y
(3,2)
0 0
1 3 plotar

2 -1 (0,0)

3 2
(2,-1)

Plotagem Numérica de Linha 2D


x y z (0,0,7)
0 0 7 (1,3,5)
(3,2,4)
1 3 5 plotar

2 -1 1
3 2 4
(2,-1,1)

Plotagem Numérica de Linha 3D


>> x = [0, 1, 2, 3];
>> y = [0, 3, -1, 2];
>> z = [7, 5, 2, 4];
>> plot3(x, y, z);

Função plot3
>> t = 0 : pi/50 : 10*pi;
>> x = sin(t);
>> y = cos(t);
>> z = t;
>> plot3(x, y, z);

Linha 3D Parametrizada
vetor matriz

Plotagem 3D: Linhas vs Superfícies


z

Superfícies em 3D
z

Z em Função de Pontos no Planos XY


z

Como Criar os Pontos no Plano XY?


y

3
(0,3) (1,3) (2,3)
2
(0,2) (1,2) (2,2)
1
(0,1) (1,1) (2,1)
x
0 1 2

Como Criar os Pontos no Plano XY?


⎡ 0 1 2 ⎤
⎢ ⎥
X=⎢ 0 1 2 ⎥
⎢⎣ 0 1 2 ⎥⎦

(0,1) (1,1) (2,1)

(0,2) (1,2) (2,2)

(0,3) (1,3) (2,3) ⎡ 1 1 1 ⎤


⎢ ⎥
Y=⎢ 2 2 2 ⎥
⎢ 3 3 3 ⎥
⎣ ⎦

Como Criar os Pontos no Plano XY?


⎡ 0 1 2 ⎤
⎢ ⎥
x=⎡ 0 1 2 ⎤ X=⎢ 0 1 2 ⎥
⎣ ⎦
⎢⎣ 0 1 2 ⎥⎦

meshgrid

⎡ 1 1 1 ⎤
y=⎡ 1 2 3 ⎤ ⎢ ⎥
⎣ ⎦ Y=⎢ 2 2 2 ⎥
⎢⎣ 3 3 3 ⎥⎦

Função meshgrid
>> x = 0 : 2; vetor x

>> y = 1 : 3; vetor y

>> [X, Y] = meshgrid(x, y); matrizes X e Y

>> Z = log(X + 1) + 0.01 * Y + 1; matriz Z

>> surf(X, Y, Z);

Superfícies em 3D: meshgrid + surf


>> x = 0 : 0.1 : 2;
>> y = 1 : 0.1 : 3;
>> [X, Y] = meshgrid(x, y);
>> Z = log(X + 1) + 0.01 * Y + 1;
>> surf(X, Y, Z);

Superfícies em 3D: meshgrid + surf


>> x = 0 : 0.05 : 2;
>> y = 1 : 0.05 : 3;
>> [X, Y] = meshgrid(x, y);
>> Z = sin(9 * X) + sin(7 * Y);
>> surf(X, Y, Z);

Superfícies em 3D: meshgrid + surf


Mapa de Cor e de Níveis
>> x = 0 : 0.05 : 2;
>> y = 1 : 0.05 : 3;
>> [X, Y] = meshgrid(x, y);
>> Z = sin(9 * X) + sin(7 * Y);
>> imagesc(x, y, Z);
>> colorbar; ATENÇÃO: esta função recebe os vetores x e y
em vez das matrizes X e Y

Projeção 2D de uma Superfície 3D


>> x = 0 : 0.05 : 2;
>> y = 1 : 0.05 : 3;
>> [X, Y] = meshgrid(x, y);
>> Z = sin(9 * X) + sin(7 * Y);
>> imagesc(x, y, Z);
>> colorbar;
>> caxis([0 2]); define limites da legenda de cor para 0 e 2

Projeção 2D de uma Superfície 3D


>> x = 0 : 0.05 : 2;
>> y = 1 : 0.05 : 3;
>> [X, Y] = meshgrid(x, y);
>> Z = sin(9 * X) + sin(7 * Y);
>> contour(X, Y, Z);
>> colorbar;

Contornos de Relevo
>> x = 0 : 0.05 : 2;
>> y = 1 : 0.05 : 3;
>> [X, Y] = meshgrid(x, y);
>> Z = sin(9 * X) + sin(7 * Y);
>> contour(X, Y, Z, 4); gera apenas 4 níveis de relevo

>> colorbar;

Especificação da Quantidade de Contornos de Relevo


>> x = 0 : 0.05 : 2;
>> y = 1 : 0.05 : 3;
>> [X, Y] = meshgrid(x, y);
>> Z = sin(9 * X) + sin(7 * Y);
>> contour(X, Y, Z, 4, "Fill", "on");
>> colorbar;

Contornos de Relevo Preenchidos


hum… posso usar o Matlab para criar estampas…
Mais Firulas
Botões da Janela de Gráficos
interface antiga

interface nova

Interface Antiga x Interface Nova


Ferramentas do Gráfico
Propriedades da Janela
Propriedades da Tela
Propriedades da Curva
Propriedades da Curva
Propriedades da Curva
Marcação de um Ponto
clique para selecionar
e mover o ponto

shift + clique para


marcar outro ponto

Marcação de Vários Pontos


Interatividades Extras nas Versões Recentes do Matlab
Salvando o Gráfico
Copiando a Imagem do Gráfico
>> % comandos no estilo antigo
>> plot(x, y, "LineWidth", 20, "Color", ...
[0.8 0 0.8], "Marker", "o");
>> % comandos no estilo novo
>> linha = plot(x, y);
>> [Link] = 20;
>> [Link] = [0.8 0 0.8];
>> [Link] = 'o';

Ajuste de Propriedades de Gráfico via Programação


>> x = 0 : 10;
>> y = x * 2;
>> linha = plot(x, y)
linha =
Line with properties: objeto da classe "Line"

Color: [0 0.4470 0.7410]


LineStyle: '-'
LineWidth: 1
Marker: 'none'
MarkerSize: 6
MarkerFaceColor: 'none'
XData: [0 1 2 3 4 5 6 7 8 9 10]
YData: [0 1 2 3 4 5 6 7 8 9 10]
ZData: [1×0 double]
Show all properties
Propriedades de Linhas de Gráfico
>> x = 0 : 10;
>> y = x * 2;
>> linha = plot(x, y);
>> [Link] = 10; espessura da linha
valores RGB de cor
>> [Link] = [0.8 0 0.8]; (entre 0 e 1)
>> [Link] = "o"; tipo de ponto

>> [Link] = 15; tamanho do ponto

>> [Link] = [0.8 0 0.8];

Propriedades de Linhas de Gráfico


>> barras = bar(x, y)
barras = >> superficie = surf(X, Y, Z)
Bar with properties: superficie =
Surface with properties:
BarLayout: 'grouped' EdgeColor: [0 0 0]
BarWidth: 0.8000 LineStyle: '-'
FaceColor: 'flat' FaceColor: 'flat'
EdgeColor: [0 0 0] FaceLighting: 'flat'
BaseValue: 0 FaceAlpha: 1
XData: [0 1 2 3] XData: [1 2]
YData: [0 2 4 6] YData: [2×1 double]
ZData: [2×2 double]
Show all properties CData: [2×2 double]

Show all properties


>> areas = area(x, y)
areas =
Area with properties:

FaceColor: 'flat' >> barras = bar(x, y)


EdgeColor: [0 0 0] imagem =
LineStyle: '-' Image with properties:
LineWidth: 0.5000
BaseValue: 0 CData: [1 2]
XData: [1 2 3 4 5] CDataMapping: 'scaled'
YData: [1 2 3 4 5]
Show all properties
Show all properties

Outras Propriedades de Gráfico


esquerda, fundo, comprimento e altura
>> janela = figure;
>> [Link] = [60 100 500 300];
>> bar(1:10, [1:10; 2:2:20]');
>> xlim([0 11]);
>> legenda = legend(["Barras 1" "Barras 2"]);
>> [Link] = "northwest"; NW N NE
W E
SW S SE

Ajustando a Posição da Janela e da Legenda


500

noroeste
300

60

100
>> x = linspace(0, 10, 200);
>> y1 = sin(3 * x);
>> plot(x, y1);
>> hold on;
>> y2 = sin(3 * x) .* exp(0.7 * x);
>> plot(x, y2);

Problema de Dois Gráficos com Escalas Muito Diferentes


hum… o seno azul
teve parada cardíaca?
>> x = linspace(0, 10, 200);
>> y1 = sin(3 * x);
>> yyaxis left;
>> plot(x, y1)
>> hold on
>> y2 = sin(3 * x) .* exp(0.7 * x);
>> yyaxis right;
>> plot(x, y2)

Dois Eixos Y no Mesmo Gráfico


>> bar(1 : 10, 11 : 20);
>> saveas(gcf, "[Link]"); salva como imagem

>> savefig(gcf, "[Link]");


salva como gráfico do Matlab
(podendo reabrir e editar depois)
referência à janela atual
(graphic current figure)

Salvando Gráficos da Janela Atual


Resumo da Ópera
Funcionalidade Comandos
errorbar(x, y, margens)
scatter(x, y, areas, valores)
histogram(valores)
Mais Gráficos 2D semilogx(x, y); semilogy(x, y)
loglog(x, y)
polarplot(x, y)

plot3(x, y, z)
[X, Y] = meshgrid(x, y)
Gráficos 3D surf(X, Y, Z)
imagesc(x, y, Z); colorbar
contour(X, Y, Z); caxis([min max])

propriedadesDaJanela = figure
propriedadesDaLinha = plot(x, y)
propriedadesDaLegenda = legend(…)
Mais Firulas yyaxis left; yyaxis right;
saveas(gcf, "[Link]")
savefig(gcf, "[Link]")

Resumo da Aula 05
Funcionalidade Comandos

Linha 2D plot(x, y, "tipo de linha");

stem(x, y)
area(x, y)
bar(x, y)
Gráficos Discretos 2D bar(["Texto1" "Texto2"], y)
barh(x, y)
pie(y)
figure
subplot(linhas, colunas, selecao)
hold on
title("titulo");
legend(["curva 1" "curva 2"])
Firulas xlabel("x"); ylabel("y")
lista de caracteres especiais
xlim([min max]); ylim([min max])
grid on
xticks([0 4 7])

Resumo da Aula 04
Funcionalidade Comandos

Ajuda Sobre uma Função help <nome da função>

sin, cos, tan,


asin, acos, atan
sind, cosd, tand,
Funções Matemáticas Básicas asind, acosd, atand
exp, log, log2, log10
sqrt, nthroot, abs
rem, round, ceil, floor

sum, prod, mean


Funções entre Elementos max, min

linspace, repelem
Funções Vetoriais / Matriciais rand, randi, randn
numel, size

Resumo da Aula 03
Funcionalidade Comandos
x = [[1, 2]; [3, 4]]
Declaração de Matrizes x = [1 2; 3 4]
Matrizes com Valores x = repmat(5, 2, 3)
Repetidos x = repmat([7 8 9], 2, 3)
x(1); x(3 : end);
Acesso a Elementos x(1, 2); x(2:4, [1 5 3]); x(:, 3);
x(1) = 3; x(1:7) = 3;
Alteração de Elementos x([1 2]) = [0 7]; x(1, :) = [];

Concatenações [x y]; [x; y];


x + y; x - y;
Operações x .* y; x ./ y; x .^ 2;
posicoes = find(x >= 3);
Busca e Substituição x(posicoes) = 0
x = [2; 4]; x(:, :, 2) = [1; 5];
Matrizes Tridimensionais x(2, 3, 2); repmat(13, 2, 4, 3);

Resumo da Aula 02
Funcionalidade Comandos
Números -2.4; 3.8e-10; pi; Inf; NaN; i;

x = 2.4; a_B_c2 = 9;
x = [1, 2, 3]; x = [1 2 3];
Criação de Variáveis y = 0 : 6;
z = 2 : -0.5 : 0;

x(1); x(2); x(end); x(end - 1);


Acesso a Elementos x([1 2]); x(3 : end);

x(1) = 3;
Alteração de Elementos x(1:7) = 3; x([1 2]) = [0 7];
x(1) = []; x(5:7) = [];

Concatenação [[2 4], 1:4]; [x y]; [x 3];

x + 2; x - 2; x + y; x - y;
x * 2; x .* y;
Operações Matemáticas x / 2; x ./ y;
x .^ 2; x .^ y;

Resumo da Aula 01

Você também pode gostar