Antonio Carlos Roque da Silva Filho e Cristiano R. F. Granzotti 14 de março de 2016

Documentos relacionados
INTRODUÇÃO AO AMBIENTE DE PROGRAMAÇÃO MATLAB

Minicurso MATLAB BÁSICO MÓDULO 3

INTRODUÇÃO AO MATLAB - PARTE 2

Gráficos em duas dimensões

TUTORIAL SIMPLIFICADO DE MATLAB

Introdução ao uso do aplicativo Gnuplot

Aprender a utilizar o aplicativo Gnuplot para fazer gráficos

Introdução ao MatLab Gráficos e manipulação de dados

MATLAB. Que é MATLAB?

Características Básicas

SCS Sistemas de Controle / Servomecanismos. Aula 01 Introdução ao software MATLAB

Capítulo 11. GRÁFICOS COM WGNUPLOT

Introdução ao MATLAB. Parte 3

Exercícios Básicos. 02) Assuma que a matriz C seja definida como abaixo e determine o conteúdo das seguintes submatrizes:

Introdução à Programação / Programação I

Curso de Especialização em Teleinformática e Redes de Computadores Departamento Acadêmico de Eletrônica Universidade Tecnológica do Paraná

Vetores, Matrizes e Gráficos

Introdução ao MATLAB. Afonso Paiva ICMC-USP

Excel INTERMEDIÁRIO. Prof. Cassiano Isler Turma 3

Observação em relação a aula passada:

MATLAB Avançado. Melissa Weber Mendonça Universidade Federal de Santa Catarina. M. Weber Mendonça (UFSC) MATLAB Avançado 2011.

Matlab Noções introdutórias. Roteiro para aula

MATLAB GRÁFICOS 1ª PARTE VERSÃO: MAIO DE 2017

Quarto projeto computacional (data de entrega: 05/06/17)

Sexta Lista: Geração de Números Pseudo-Aleatórios e Método de Monte Carlo

Exemplo 1. t = [0:2:20] ; g = 9.81; m = 68.1; cd = 0.25; v = sqrt(g*m/cd)*tanh(sqrt(g*cd/m)*t); plot(t, v) 2013/02/14

Usar minigráficos para mostrar tendências de dados

Tipos de gráficos disponíveis

A utilização de gráficos no Excel tem como objetivo exibir dados de forma a facilitar a análise e compreensão de certas informações em uma planilha.

Esta prática tem como objetivo apresentar o uso de Matlab para encontrar a resposta de um sistema dinâmico.

Capítulo 02. Princípios ásicos do MATLAB

4 Análise de Dados. 4.1.Procedimentos

MATLAB EM VIBRAÇÕES MECÂNICAS

Manual do SymbolEditor. Stephen P. Allewell

Mini curso básico. Gilberto A. S. Segundo Fábio Carmo. Programa de Educação Tutorial

Pontifícia Universidade Católica de Goiás Escola de Engenharia. Aluno (a): Aula Laboratório 07 Cap 9 Resposta no Domínio do Tempo

O Editor gráfico tem capacidade de visualizar todos os níveis (ou acetatos) separadamente ou juntos, à escolha do usuário:

Criar um gráfico do início ao fim

Curso Apresentações em EXCEL

Gerando Figuras com o Maple e GnuPlot e Incluindo em arquivos L A TEX

LibreOffice Calc: aula 3

Universidade Federal de Juiz de Fora Programa de Pós-Graduação em Modelagem Computacional. Rodrigo Barbosa de Santis

Apostila de impressão em AUTOCAD

a: vetor contendo valores.

Prof. Dr. Marco Antonio Leonel Caetano

Minicurso de MATLAB. Programa de Educação Tutorial de Engenharia Elétrica 28/03/15. lmax Rodrigues. lcaroline Pereira.

LibreOffice Calc: aula 1

Gráficos Excel Dados da planilha. Gráfico criado a partir de dados de planilha

CÁLCULO NUMÉRICO. Profa. Dra. Yara de Souza Tadano

Inserindo Imagem. Inserindo uma imagem a partir da Galeria

CÁLCULO NUMÉRICO. Profa. Dra. Yara de Souza Tadano

Módulo I. Desejamos boa sorte e bom estudo! Em caso de dúvidas, contate-nos pelo site Atenciosamente Equipe Cursos 24 Horas

Portal de Cotação da FCC S.A.

Aula 7. Noções Básicas de Octave

Tipos de gráficos disponíveis

Foi criado em 1990 por pesquisadores do INRIA e da ècole Nationale des Ponts et Chaussées (França), sendo gratuito e similar ao Matlab.

4 Implementação do Gerador de arquivos VRML - VRMLGer

Sumário APRESENTAÇÃO...3 ACESSO AO SISTEMA...4 FUNCIONALIDADES...5 SIG-PCJ... 3 ACESSANDO O SISTEMA VIA WEB...4 MANUAL DO USUÁRIO...

UNIVERSIDADE REGIONAL DO NOROESTE DO ESTADO DO RIO GRANDE DO SUL DEPARTAMENTO DE FÍSICA, ESTATÍSTICA E MATEMÁTICA

APRESENTAÇÃO... 3 IGEO... 3 ACESSO AO SISTEMA... 4 MANUAL DO USUÁRIO... 4 FUNCIONALIDADES... 5 NAVEGAÇÃO E CONSULTA... 5 MANIPULAÇÃO DE CAMADAS...

Modelo Matemático simples

Esta é a única declaração da aplicação

Tutorial QGIS Aula 10

Introdução ao software MatLab

Especificações e limites de planilha e de pasta de trabalho

FUNÇÃO: MOTIVAÇÃO FUNÇÃO: MOTIVAÇÃO FUNÇÃO: MOTIVAÇÃO. Bacharelado em Ciência e Tecnologia Bacharelado em Ciências e Humanidades

CÁLCULO NUMÉRICO. Profa. Dra. Yara de Souza Tadano

DISTRIBUIÇÃO CONTÍNUA UNIFORME

Sumário Objetivos Estudo de caso 1 Criação de template Exercício 1 Detalhamento da peça Exemplo... 23

LABORATÓRIO DE PROCESSAMENTO DIGITAL DE SINAIS LAB 1. Prof. José Roberto Marques

BETA SISTEMAS MÓDULO CAIXA 3.0. Instruções de uso do Caixa Beta:

Engenharia Biomédica Jorge Henriques, Fevereiro, 2007

Georreferenciamento. 1. Abra o arquivo Georreferenciamento.Dgn

Roteiro de Construção de Gráficos Análise de Experimentos Virtuais

Estatística-2017/2 aula de 14/08 TURMA: IGA

Métodos Computacionais em Física Noções Básicas do sistema

2 Declarando e usando variáveis

GUIA DE INÍCIO RÁPIDO

Trabalho de Processamento Digital de Sinais usando MATLAB R

Quadras (4 feições) + atributo área Pontos notáveis + atributo de descrição

Breve Introdução à Programação em Scilab 6.0

Apostila Impress 01. Partes da Janela Principal do Impress

Novas Tecnologias no Ensino da Matema tica

Estudo de Pontes de Madeira com Tabuleiro Multicelular Protendido O PROGRAMA OTB

Processamento Digital de Imagens

CEULP/ULBRA Curso de Engenharia Civil

Aula 4. Departamento de Métodos Estatísticos Instituto de Matemática Universidade Federal do Rio de Janeiro

Informática no Ensino de Matemática Prof. José Carlos de Souza Junior jc

AULA 2 Planos Vistas e Temas

Estruturas de Dados Estáticas Cont.

Informática para Ciências e Engenharias (B) 2016/17. Teórica 6

Me todos Computacionais em Fı sica

SUMÁRIO 1. APRESENTAÇÃO FUNCIONALIDADES COMUNS AOS USUÁRIOS... 3

Excel BÁSICO Aula 4 Tratamento de Dados. Prof. Cassiano Isler Turma 4

Iteração e Pontos Fixos

Parte IV Como projetar um layout de página

Aula 01 Microsoft Excel 2016

4 Resultados Exemplo 1 Reprodução da Opacidade 2D

SIMULAÇÃO DA ATIVIDADE ELETROFISIOLÓGICA DE NEURÔNIOS

Transcrição:

Gráficos em Matlab Antonio Carlos Roque da Silva Filho e Cristiano R. F. Granzotti 14 de março de 2016 1 Gráficos em Matlab Gráficos bidimensionais serão muito utilizados ao longo do curso de Física Computacional, para representação dos resultados obtidos a partir da solução numérica dos problemas propostos. Em Matlab, assim como no Octave, o comando para produzir tais gráficos é plot. O exemplo mais simples de uso desse comando é considerar dois arrays de dados x e y: >> x = 0:0.1:10; >> y = sin(x); >> plot(x,y) cuja saída resultante é um gráfico com aspecto semelhante ao da Fig. 1. Figura 1: Gráfico da função seno no intervalo 0 <x<10 obtido por meio do comando plot. Observe que o uso puro e simples do comando plot produz um resultado que, sob muitos aspectos, é incompleto e indesejável. Gráficos (como os que você terá que enviar em seus trabalhos) devem conter algumas características extras, tais como fácil visibilidade de números, curvas, textos, rótulo dos eixos e legendas adequadas. É fácil perceber que o gráfico da Fig. 1 não satisfaz esses critérios, ou seja, o comando plot simples deve ser utilizado apenas quando se deseja averiguar rapidamente o comportamento de uma função (ou conjunto de 1

Figura 2: Gráfico com alteração simultânea do estilo e cor da linha dados) em função de segundo conjunto de dados. Para melhorar a qualidade de um gráfico feito com o comando plot é necessário alterar suas propriedades básicas por meio de alguns especificadores apresentados a seguir. 1.1 Alterando as Propriedades do Gráfico A primeira propriedade que vamos alterar é a espessura da linha. A espessura é ajustada por meio do especificador Linewidth que, por padrão, vale 0.5. Para produzir uma linha mais grossa (o que muitas vezes melhora a visibilidade) deve-se proceder da seguinte maneira: >> plot(x,y, linewidth,2) Tente outros valores de espessura para ver o efeito. O tipo de linha utilizado também pode ser alterado. Por exemplo, para produzir uma linha tracejada o comando é: >> plot(x,y, --, linewidth,2) ou seja, usa-se o especificador --. Outros formatos comuns são, por exemplo, o pontilhado : e o tracejado com pontos -.. O padrão do Matlab (linha cheia) é especificado por - (não é necessário especificar no comando plot, pois ele já é automaticamente utilizado). A cor da linha também pode ser modificada simultaneamente com o especificador de mudança do formato da curva. Por exemplo, >> plot(x,y, --r, linewidth,2) resulta em uma curva tracejada de cor vermelha r, como ilustrado no gráfico da Fig. 2. Algumas cores possíveis são preto, azul, verde e amarelo, representadas por k, b, g e y, respectivamente. Vale lembrar que não é necessário mudar o estilo de linha para mudar a cor, basta usar o especificador de cor, tal como r para vermelho. O comando plot produz não apenas gráficos com 2

curvas feitas por traços e pontos, mas também com marcadores. Um dos marcadores mais comuns é o quadrado sem preenchimento (procure por Marker no help do Matlab para encontrar mais marcadores), definido pelo especificador s. O comando para produzir um gráfico com este marcador é: >> plot(x,y, s ) e o resultado é mostrado no gráfico da Fig. 3(a). Concomitantemente, é possível definir a espessura da linha das bordas do marcador: >> plot(x,y, s, linewidth,2) e o resultado está mostrado no gráfico da Fig. 3(b). Há também a possibilidade de definir a cor do contorno do marcador com o especificador MarkerEdgeColor, de definir a cor de preenchimento do marcador com o especificador MarkerFaceColor e, ainda, de definir o tamanho do marcador com o especificador MarkerSize. Esses 3 especificadores podem ser reunidos em um único gráfico, obtido com o comando a seguir e ilustrado no gráfico da Fig. 3(c) plot(x,y, s, MarkerEdgeColor, k, MarkerFaceColor, k, MarkerSize,6) (a) (b) (c) Figura 3: (a) Gráfico utilizando o marcador quadrado. (b) Alteração da espessura da linha de contorno do marcador. (c) Gráfico com a definição da cor do contorno, do preenchimento e do tamanho do marcador. As operações apresentadas anteriormente resumem o que pode ser feito para modificar a maneira de mostrar a curva que representa o conjunto de dados. Ainda falta discutir os atributos textuais. O primeiro deles são os títulos dos eixos x e y, definidos por meio dos comandos xlabel e ylabel. Vejaoexemplo ilustrativo a seguir: plot(x,sin(x)); xlabel( Abscissa, FontSize,14); ylabel( Ordenada, FontSize,14); set(gca, FontSize,18) O especificador FontSize modifica o tamanho da fonte dos rótulos dos ei- 3

xos. No exemplo dado no gráfico da Fig. 4(a) o tamanho da fonte foi definido como 14. Adicionalmente, podemos modificar a fonte dos marcadores dos eixos com o comando set(gca, FontSize,18). O resultado deste último comando pode ser visualizado no gráfico da Fig. 4(b): o primeiro parâmetro, gca, retorna um manipulador para a figura atual que permite mudar várias propriedades do gráfico, incluindo a espessura da linha e a fonte dos marcadores dos eixos. Para saber mais sobre quais propriedades podem ser alteradas, procure a lista de propriedades passíveis de modificação com o comando get(gcf). (a) (b) Figura 4: (a) Gráfico com os eixos rotulados. Não é necessário que as fontes dos dois rótulos sejam iguais. (b) Efeito da mudança no tamanho das fontes dos marcadores dos eixos; note que agora os números tornaram-se visíveis. Ao invés de salvar a figura utilizando a janela gráfica que o Matlab exibe após o comando plot, pode-se utilizar a função saveas: saveas(gca, filename, png ) que salva o último gráfico com nome definido por filename e extensão png no diretório atual de trabalho do Matlab. Outas extensões como pdf, eps, jpeg e ps podem ser utilizadas. Os dois últimos atributos textuais que vamos estudar são título e legenda. A legenda é adicionada facilmente ao gráfico por meio do comando: legend({ seno }, FontSize,18) que introduz uma legenda com o texto seno dentro de um retângulo no canto superior direito do gráfico. O comando title: title( Título, Fontsize,18) introduz um título na parte superior do gráfico. Até o momento abordamos o caso mais simples, onde um único gráfico com uma única curva é gerado. Quando um programa em MATLAB gera mais de dois gráficos, necessita de vários plots em uma mesma figura, ou duas ou mais curvas no mesmo gráfico. Para plotar esses gráficos torna-se necessário o uso de outros comandos, que serão definidos na próxima seção. 4

1.2 Gráficos na Mesma Figura: Comandos subplot e hold O primeiro caso que deve ser mencionado aqui é a geração de dois gráficos distintos em um mesmo programa. Aparentemente, usar dois comandos plot, cada um com os respectivos arrays de dados, vai produzir o resultado desejado. Para averiguar se isso é verdade, digite a seguinte sequência de comandos no matlab e observe o resultado x = 0:0.1:10; plot(x,cos(x)); plot(x,sin(x)); Se você observou que apenas um gráfico foi criado, não se preocupe, é exatamente isso que deveria acontecer. O primeiro comando plot cria uma janela para uma figura e dentro dessa janela o gráfico da função cosseno é desenhado. Ao encontrar o segundo plot, a janela para figura, que foi criada pelo primeiro plot, é apenas preenchida com o desenho de uma outra curva, no caso a função seno. Para contornar esse problema, é necessário especificar que cada uma das duas curvas deve ser desenhada em uma janela para figura distinta. Tente a seguinte sequência de comando e avalie o novo resultado x = 0:0.1:10; figure(1) plot(x,cos(x)); figure(2) plot(x,sin(x)); Desenhar duas curvas em um mesmo gráfico é muito útil quando se deseja comparar dois conjuntos de dados visualmente, por exemplo, a solução exata e a numérica de uma equação diferencial. Desenhar duas curvas em um mesmo gráfico pode ser feito por meio do comando hold on. Este comando retém o traçado (gráfico) corrente na janela da figura para que novos gráficos possam ser adicionados. Para desenhar as curvas da função p x e da função p x ln(x) utilizamos a seguinte sequência de comandos x = 1:1:100; set(gca, FontSize,14) plot(x,sqrt(x), linewidth,2); hold on plot(x,log(x).*sqrt(x), -r, linewidth,2); legend({ sqrt(x), log(x).sqrt(x) }, FontSize,18) xlabel( x, FontSize,14); ylabel( f(x), FontSize,14); cujo resultado é apresentado no gráfico da Fig. 5. Observando a figura em questão é natural questionar se é possível escrever equação p x na legenda do gráfico, ao invés de sqrt(x). Isso é possível quando utilizamos um interpretador L A TEXpara escrever equações. L A TEXé um sistema de preparação de documentos de alta qualidade tipográfica, muito utilizado para a produção de textos científicos, incluindo artigos e livros. Para modificar a legenda da Fig. 5 não é 5

necessário conhecer em detalhes o L A TEX. A única coisa que é necessário saber para escrever equações é que os comandos que definem a equação devem ser delimitados por dois cifrões e a estrutura do comando em Matlab: legend({ $\sqrt(x)$, $\ln(x)\sqrt(x)$ }, Interpreter, latex, fontsize,14) onde as opções Interpreter e latex definem que o texto da legenda deve ser interpretado como comandos do L A TEX. Utilize o comando acima na produção de um gráfico análogo ao da Fig. 5 e observe a diferença na legenda produzida. Mais símbolos e comandos do L A TEXencontram-se no link 1. Figura 5: Gráfico utilizando o comando hold on. As propriedades de cada curva podem ser definidas separadamente, tal como cor e espessura da linha. Tanto em Matlab, quando em Octave, há a possibilidade de desenhar vários gráficos distintos em uma mesma figura, cada um com seu eixo e legenda. O comando necessário para produzir tal saída é o subplot(m,n,p) que divide a janela de figuras em um grid de m n posições. O parâmetro p especifica em qual posição o gráfico será inserido. p varia de 1 até m n. O primeiro gráfico é inserido na primeira linha e primeira coluna, o segundo gráfico é inserido na primeira linha e segunda coluna, e assim por diante até completar a primeira linha; passa-se então para a segunda linha, a terceira e assim por diante. O exemplo a seguir produz quatro gráficos em uma mesma figura, os dados são compostos pela voltagem da membrana de uma célula nervosa e as condutâncias de espécies iônicas obtidas ao considerar o modelo de Hodgkin Huxley. O resultado do comando subplot é ilustrado no conjunto de 4 gráficos da Fig. 6 figure(1) subplot(2,2,1) plot(t,v, linewidth,2) xlabel( Tempo [ms], FontSize,14); xlabel( Tempo [ms], FontSize,14); ylabel( Tens~ao [mv], FontSize,14); 1 http://web.ift.uib.no/teori/kurs/wrk/tex/symall.html 6

subplot(2,2,2) plot(t,n, linewidth,2) xlabel( Tempo [ms], FontSize,14); ylabel( n, FontSize,14); subplot(2,2,3) plot(t,m, linewidth,2) xlabel( Tempo [ms], FontSize,14); ylabel( m, FontSize,14); subplot(2,2,4) plot(t,h, linewidth,2) xlabel( Tempo [ms], FontSize,14); ylabel( h, FontSize,14); Figura 6: O comando subplot produz um conjunto de 4 gráficos com títulos de eixos e legendas individuais. 1.3 Histogramas O uso de histogramas é útil quando deseja-se avaliar a distribuição de dados gerados por um experimento numérico, por exemplo usando-se a técnica de Monte Carlo. As classes de um histograma são delimitadas por um valor inferior e outro superior, tal que todos os dados que caem dentro desses limites contribuem para a contagem do número de eventos nesse intervalo. A contagem pode ser representada graficamente em número absoluto (histograma de frequências), relativo (histograma de frequência relativa) ou em densidade de 7

probabilidade (frequência relativa por intervalo da classe). Para apresentar as funções de desenho de histogramas vamos gerar um conjunto de dados sintéticos por meio da função random. Esse comando gera números aleatórios que seguem distribuições definidas pelo usuário, tal como normal, beta, exponencial, etc (no prompt de comandos do Matlab avalie as possíveis distribuições por meio do comando help random). Para o nosso propósito basta gerar mil números aleatórios com distribuição N(0, 1) e armazenar em um array: y = random( norm,0, 1, 1, 1000); O comando mais simples para a geração de um histograma é hist(y), onde y é o vetor de dados. O histograma obtido contém 10 classes igualmente espaçadas, o que na maioria das vezes não produz um resultado visualmente adequado, pois a discretização (número de classes e intervalos de classes) pode ser tal que faz com que a distribuição tenha uma granularidade alta ou baixa. O importante na geração de um histograma é especificar o número e os intervalos das classes, o que pode ser feito pelo comando hist(y,n) onde n especifica o número de classes e o histograma de frequência absoluta é produzido utilizando o ponto médio dessas classes. Ao utilizar [h,x] = hist(y,n) atribuímos ao vetor h a frequência absoluta de cada classe e a x o ponto médio de cada classe, permitindo, dentre outras coisas, criar um gráfico de frequências relativa. O comando necessário é dado por bar(x,h/sum(h)) Por último, temos o histograma de densidade de probabilidade onde os intervalos das classes são determinados pelo próprio usuário, assumindo o intervalo da classe como Dx pode-se definir o vetor com os limites das classes e utilizá-lo como parâmetro da função hist, o resultado do comando hist deve ser utilizado na função bar: Dx=1; edg = -4:0.5:4; [h,x] = hist(y,edg); bar(x,h/(dx*sum(h))); A saída dessa última sequência de comandos produz o gráfico da Fig. 7. A maioria destes comandos foi utilizada em Octave, sem nenhuma alteração, e produziu os mesmos resultados. 8

Figura 7: Histograma de densidade de probabilidade. 9